2011-03-13 63 views
1

試圖在窗口計算器窗體上獲取按鈕的句柄。 間諜++顯示爲以下三種:使用FindWindowExA()不能找到子窗口()

( 「計算器」; CalcFrame) - >

( 「」; CalcFrame) - >

( 「」;#32770對話框),... anather孩子窗口 - >

( 「」 按鈕),......另一個子窗口

//( 「窗口標題」;窗口類) // - >下一個子層次

我抓住主窗口,並使用FindWindowExA()更深入;

#define wndName "Calculator" 
... 
    HWND calcHwnd = ::FindWindowA(0, wndName); 
    HWND frameHwnd = ::FindWindowExA(calcHwnd, 0, 0, 0); 
    HWND contentHwnd = ::FindWindowExA(calcHwnd, 0, "#32770 (Dialog)", 0); 
    DWORD er = GetLastError(); 

我可以使用:: FindWindowExA(calcHwnd,0,0,0)幾次,讓我HWND需要(在這一水平有幾個子窗口)。但我想獲得HWND使用條件,我需要的窗口類「#32770(Dialog)」。但是:: FindWindowExA(calcHwnd,0,「#32770(Dialog)」,0) - 返回NULL。 GetLastError返回0.什麼是錯的?

回答

2

#32770實際上是一個類的原子。試試:

HWND contentHwnd = ::FindWindowExA(calcHwnd, NULL, MAKEINTRESOURCE(32770), NULL); 
+0

謝謝!它幫助! – Alex 2011-03-13 21:57:19