【发布时间】:2013-12-18 13:13:26
【问题描述】:
我正在尝试在我的对话框窗口过程中包含,当收到消息 WM_CTLCOLORSTATIC 时,我会获得发送消息的控件的 ID。
case WM_CTLCOLORSTATIC:
UINT ID = GetWindowLong((HWND)lParam, GWL_ID);
问题是...当我尝试对 WM_CTLCOLORSTATIC 的 lParam 进行类型转换时,它返回值 65535,这是不正确的;我什至没有最大 UINT ID 为 65535 的资源项。
你能告诉我为什么会这样吗?
【问题讨论】:
-
你是说窗口句柄(lParam)是65535吗?或者
GetWindowLong的结果是65535?请澄清您的问题。 -
GetWindowLong已弃用,因为它不支持 x64 平台,正确的函数是GetWindowLongPtr -
我用 CTLCOLORSTATIC 的参数“lParam”和 GWL_ 消息“GWL_ID”调用了 GetWindowLong。因此 GetWindowLong 应该返回发送消息 CTLCOLORSTATIC 的控件的 UINT ID。但事实并非如此。它返回 65535。
标签: c++ winapi resource-id getwindowlong