【发布时间】:2011-03-13 21:41:10
【问题描述】:
试图获取窗口计算器窗体上的按钮句柄。 Spy++ 显示以下树:
("计算器"; CalcFrame) ->
(""; CalcFrame) ->
(""; #32770 Dialog), ...另一个子窗口 ->
(""; Button) ,... 另一个子窗口
//(“窗口标题”;窗口类) // -> 下一个子级别
我使用 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(在那个级别有几个子窗口)。但我想使用我需要的窗口具有类“#32770(对话框)”的条件来获得 HWND。 但是 ::FindWindowExA(calcHwnd, 0, "#32770 (Dialog)", 0) - 返回 NULL。 GetLastError 返回 0。出了什么问题?
【问题讨论】: