Windows下GetMessage的HWND参数作用与多窗口消息获取咨询
获取第二个窗口的消息方法
要获取第二个窗口的消息,直接在调用GetMessage时,将第二个参数指定为第二个窗口的HWND句柄即可。
核心说明
- 默认调用
GetMessage(NULL, ...)时,会接收当前线程下所有窗口的消息。 - 定向获取单个窗口消息时,把目标窗口的
HWND传入GetMessage的第二个参数位置即可。
示例代码片段
MSG msg; // 假设hWnd2是你创建的第二个窗口的句柄 while (GetMessage(&msg, hWnd2, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
额外注意点
- 传入的HWND必须是当前线程创建的窗口句柄,
GetMessage无法捕获其他线程窗口的消息。 - 如果需要同时处理多个窗口的消息,建议保持
GetMessage的第二个参数为NULL,然后在窗口过程中通过消息的hwnd字段区分不同窗口。
内容的提问来源于stack exchange,提问作者Praveen Kumar
相关产品推荐
相关产品推荐

