2

我正在寻找一种方法来检测功能区画廊是否打开。我正在使用实现 IUICollection 的 Delphi Ribbon 框架。我使用 IUIFramework.GetUICommandProperty 尝试了几个属性(例如 UI_PKEY_Viewable、UI_PKEY_Enabled),但这些属性都没有返回图库下拉菜单的“打开/关闭”状态。

有谁知道这是否可能?

4

1 回答 1

0

IAccessible我能够通过使用界面来解决这个问题。(参见https://msdn.microsoft.com/en-us/library/windows/desktop/dd318466(v=vs.85).aspx

幸运的是,我们已经有了查找特定 UI 元素的功能。它使用AccessibleObjectFromWindow;from unit ,从主应用程序窗口句柄Winapi.oleacc中检索对象。IAccessible

从那里,它使用递归检查子项AccessibleChildren,如下所述:http: //msdn.microsoft.com/en-us/library/windows/desktop/dd317975 (v=vs.85).aspx 并比较当前元素的具有给定参数的名称。

作为参数,我使用图库中第一项的标题。此项目仅在画廊打开时可用,因此使用我们自定义的“FindElement”功能,我能够区分可见弹出窗口和关闭的弹出窗口。

这可能不是最好的解决方案,但恐怕没有其他...

于 2017-01-16T16:27:36.737 回答