编写脚本肯定会用对象仓库的啊,就是在建对象仓库的时候,遇到了上面的问题!!
重新把场景描述一下:
主窗口->(点击[功能1]出现)子窗口A->点击[功能A1出现]子子窗口A1
->(点击[功能2]出现)子窗口B->点击[功能B1出现]子子窗口B1
关键问题在于:子子窗口A1 和 子子窗口B1,它们具有完全一样的控件,从程序实现的角度而言,这两个子子窗口都来源于同一个窗口类(如 CFrameWin),即都是通过调用New CFrameWin()语句生成的,所不同的只是这段代码一个是出现在子窗口A的代码行中,一个是出现在子窗口B的代码行中。
那么,我们建立对象仓库的时候,在为子窗口A识别对象时,将识别到子子窗口A1,并且对它进行必要的维护,而在为子窗口B识别对象时,则将识别到子子窗口B1,并且也要对它进行必要的维护。这两次维护工作一般而言所做的工作是完全一样的! 试想,如果CFrameWin被应用到许多的功能之中,那么我们就需要做很多次相同的维护工作,很麻烦啊。
[ 本帖最后由 happychap 于 2008-9-29 15:36 编辑 ]