2011-02-13 32 views
0

我是win 32 api的初學者。我嘗試使用win 32 api創建屏幕鍵盤。我可以通過點擊來處理窗口和組件,但是如何實現這些類型,並且我只想在文本框和可編輯組件上設置文本如何找到GDI的類型

我嘗試使用GetWindowInfo()並嘗試使用窗口的atomWindowType來實現類型但是這並不是完全用於這個目標,因爲每次重啓操作系統都會發生這種變化。

(點擊是窗口的句柄)

WINDOWINFO PWI =新WINDOWINFO(); USER32INST.GetWindowInfo(click,pwi);如果(pwi.atomWindowType!= -15891){setLastclick(click); } tnx

+0

我不認爲我理解,但萬一我很接近,[`GetClassName`](http://msdn.microsoft.com/en-us/library/ms633582%28v=vs.85%29 .aspx)可能會幫助你.. – 2011-02-13 15:21:37

+0

一些GDI,如文本框和textarae和組合,...有編輯className。 GetClassName使用完整但僅限於GDI。我需要所有地方的解決方案,例如網頁瀏覽器組件。可編輯組件的offten應用程序使用其他類名。 – 2011-02-13 16:40:26

回答

1

你不可能實現你的願望,完全一般而言它不是現實可能的。

窗口的類型(或類)基本上由其WndProc確定。您可以使用GetClassName及其相似之處來幫助您識別一些標準窗口類,但正如您已經發現的,大多數真實世界的應用程序不會使用這些標準類。

因此,儘管在理論上,您可以在運行時分析WndProc背後的代碼,但實際上這是不可行的。