2009-11-10 57 views
4

在我的(PowerBuilder)應用程序中,我希望能夠確定與給定窗口句柄相對應的graphicobject對象。如何獲得給定HWND句柄的PowerBuilder圖形對象?

只需遍歷Control[]數組,並比較由每個子控件返回的Handle()函數的值不起作用,因爲並非我的應用程序中的所有對象都是主窗口的子項(考慮登錄對話框)。

任何PowerScript或C/C++解決方案都可以接受。

是否可能有一些窗口消息可以發送到窗口句柄,並且此消息只能被PowerBuilder窗口理解,而這些窗口會使用其內部對象名稱進行響應?

回答

1

是否需要從句柄中確定對象,或者您只是想識別一個對象,例如要知道您需要修改的代碼在哪裏?我做了一個後者的工具,但它使用了對象焦點,而不是窗口句柄。


(加2010-06-21)對於不屬於主窗口的孩子,您可以明確地isValid()檢查每個窗口類名的窗口。然後對於每個有效的窗口,通過查找句柄來挖掘。只要你一次只打開窗口類的一個實例,這應該工作。如果您打開多個實例,我認爲您需要向這些窗口的open添加註冊機制,以便應用程序可以訪問它們。

+0

不幸的是,前者是我的情況。我需要獲取與給定窗口句柄相對應的PowerBuilder應用程序的圖片對象(如果有的話)。 – 2009-11-12 20:57:24

+1

你是否繼承祖先類的所有窗口? – 2009-11-13 20:24:13

+0

@Hugh:不,我不是;我確實考慮過這種替代方法(然後在'open'事件處理程序中維護一個HWND-> graphicobject映射),但不幸的是我不能在我的情況下使用它。 – 2009-11-17 15:07:46

相關問題