2016-12-21 29 views
2

我正在尋找一種方法來檢測是否打開功能區圖庫。我正在使用實現IUICollection的Delphi Ribbon框架。我使用IUIFramework.GetUICommandProperty(例如UI_PKEY_Viewable,UI_PKEY_Enabled)嘗試了幾個屬性,但這些都不會返回庫下拉列表的「打開/關閉」狀態。檢測圖庫是否在Windows功能區框架中打開

有誰知道這是可能的嗎?

回答

0

我能夠通過使用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」功能,我可以在可見彈出框和關閉窗口之間進行區分。

這可能不是最好的解決方案,但恐怕沒有其他的...