WEB开发网
开发学院软件开发VC 活动的可访问兼容型应用给程序员带来使用软件的新... 阅读

活动的可访问兼容型应用给程序员带来使用软件的新工具

 2007-03-22 21:31:12 来源:WEB开发网   
核心提示: 这样,如果一个子不支持自己的Iaccessible接口,活动的可访问兼容型应用给程序员带来使用软件的新工具(6),而它的父亲支持,那么这个子就可以Iaccessible接口/子ID对来表示,为了解决这个问题,例程检查当前的操作系统,通常,支持Iaccessible接口的UI父亲元素也由这样

这样,如果一个子不支持自己的Iaccessible接口,而它的父亲支持,那么这个子就可以Iaccessible接口/子ID对来表示。通常,支持Iaccessible接口的UI父亲元素也由这样的对来表示,其中子ID定义为CHILDID_SELF,且其值为0。

记住,子ID总是相对于Iaccessible接口的。例如,一个可访问的元素可以有一个非CHILDID_SELF的子ID,相对于它的父亲的Iaccessible接口(该接口的子ID将是CHILDID_SELF,相对于它自身的Iaccessible接口,如果支持的话)。

如果你使用Active Accessibility功能,你应该总能提供Iaccessible接口/子ID对与一个可访问的UI元素交互。几乎所有的Active Accessibility功能和Iaccessible方法需要这两个参数,因此不要忘记提供正确的子ID。对于支持Iaccessible的UI元素来说,这个ID将是CHILDID_SELF。

如果一个子不支持Iaccessible,而父亲支持Ienum类型的变量接口,子ID就能通过叫做Next的标准Ienum变量接口方法检索。如果父亲不支持Ienum类型的变量接口,子id只是它的序号而已。应该指出,如果一个子支持Iaccessible接口,Next能够返回一个子的ID或者与这个子的Iaccessible接口相关的一个Idispatch。Next的实现取决于供应商,对于不同的UI元素可以不同。

一个UI元素是可访问的事实并不必然意味着它有自己的Iaccessible接口。如果一个UI元素支持它自己的Iaccessible接口,子的Iaccessible接口/CHILDID_SELF对用来访问它。如果一个UI元素不支持它自己的Iaccessible接口,表示该元素的对将是Iaccessible父接口/子ID对,其中子ID不等于CHILDID_SELF,并由程序决定。你应该总是调用get_accChild来检查一个UI元素是否支持它自己的Iaccessible接口。

开发测试软件

为了编写测试程序,你必须获得UI元素信息,使用WinEvent hooks来监视事件,使用Iaccessible接口指针来访问控件,在控件上执行动作并且模拟键盘和鼠标输入。这些和其它问题我将在下一节中用一个例程来解决。例程模拟了一个用户与Find: All Files对话框的交互过程,它使用了标准Win32 FindWindow功能来检查Find: All Files对话框是否存在。如果不存在,程序就监控WinEvents,等待其出现。一当对话框出现,程序获得指向与对话框相对应的IAccessible接口的指针,跳到Containing text:编辑框和Named:组合列表框,分别进行设置,按下Find Now按钮。最后,模拟Alt-F4的键盘输入关闭对话框。注意在Windows 2000下,对应的窗口及其域与Windows NT 4.0 和Windows 9x下有所不同。为了解决这个问题,例程检查当前的操作系统,如果必要就初始化bIsWin2K变量以允许将Windows2000单独对待。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:活动 访问 兼容

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接