【问题标题】:Detect if gallery is open in Windows Ribbon Framework检测库是否在 Windows Ribbon Framework 中打开
【发布时间】:2016-12-21 09:53:53
【问题描述】:

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

有人知道这是否可能吗?

【问题讨论】:

    标签: delphi windows-ribbon-framework


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2011-05-20
      • 1970-01-01
      相关资源
      最近更新 更多