2011-03-13 123 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