如何在CMFCMenuBar及其项中支持辅助功能

How to support accessibility in CMFCMenuBar and its items

本文关键字:支持 功能 CMFCMenuBar      更新时间:2023-10-16

我需要为CMFCMenubar启用可访问性,以便在编码的ui测试中使用它(默认情况下不支持),正如MSDN Visual Studio博客上的这篇文章中提到的,MFC功能包控件(如CMFCMenuBar)不完全受支持。

我使用了一个工具来测试软件中的可访问性支持,它位于路径C:\Program Files\Windows Kits\8.1\bin\x86"inspect.exe"中,当我使用UI Automation时,它可以工作,但当我使用MSAA(与编码UI测试中使用的技术相同)时,它失败了。

我尝试了以下跳跃以使其工作:

  1. 我创建了一个新项目,并在向导中选中了"支持辅助功能"复选框
  2. 我在应用程序的第一个条目中调用了方法GetGlobalData()->EnableAccessibilitySupport(TRUE);
  3. 我在帧中调用了EnableActiveAccessibility();,对于menubar也是如此(如果GetGlobalData()->IsAccessibilitySupport()true,则默认调用它)

但是它失败了,如何启用它我需要一些帮助

如果您查看CMFC菜单栏及其相关"按钮"的派生,您会发现按钮在基本级别上是从CObject派生的。这就是编码ui不支持它们的原因。编码的ui看不到它们。我们的编码ui测试也遇到了同样的问题。目前,如果您使用功能包中的类,就无法轻松解决问题。