我尝试在这里和谷歌搜索,我最终得到了“GetDlgItem”方法,但它不起作用。
这是我的代码:
HWND hwnd_Parent;
HWND hwnd_Child;
hwnd_Parent = FindWindow(NULL,"MyTitle");
hwnd_Child = GetDlgItem(hwnd, 0x00030756);
hwnd_Parent是可以的(我甚至做过一些帖子消息测试),但是hwnd_Child为null。 因此,您看到的十六进制数是通过WinSpy ++找到的。
我的系统是Windows 7 64位,我的IDE是代码块。
提前致谢。
答案 0 :(得分:4)
您需要知道要使用GetDlgItem()
的窗口的ID。我怀疑你传递的是你从Spy ++获得的HWND。
看起来你在另一个应用程序中徘徊,因为如果它是你自己的应用程序,那么你就不需要调用FindWindow,你就知道控件ID了。
找到此窗口的最简单方法是,一旦您从FindWindow获得顶级窗口,就可以调用EnumChildWindows()
。
答案 1 :(得分:2)
GetDlgItem
获取控件的ID。 0x00030756
已经看起来像一个句柄,你究竟想要获得什么?
hwnd_Child = (HWND)0x00030756;
(当然,这只是一个例子。无论如何硬编码处理值都无济于事。)
答案 2 :(得分:0)
首先使用HWND调用GetDlgCtrlID以获取控件ID
int GetDlgCtrlID(HWND controlHandle);
然后使用CWnd函数GetDlgItem
CWnd* GetDlgItem(int controlID);