C++ 在GetMessage循环中未接收WM_命令
有人能解释一下为什么我在GetMessage循环中从未收到WM_命令消息吗? 我已经检查过了,WndProc正在接收WM_命令消息,所以我很困惑为什么这不起作用C++ 在GetMessage循环中未接收WM_命令,c++,winapi,C++,Winapi,有人能解释一下为什么我在GetMessage循环中从未收到WM_命令消息吗? 我已经检查过了,WndProc正在接收WM_命令消息,所以我很困惑为什么这不起作用 while (GetMessage(&msg, NULL, 0, 0) != 0) { TranslateMessage(&msg); DispatchMessage(&msg); if (msg.message == WM_COMMAND) { // This
while (GetMessage(&msg, NULL, 0, 0) != 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
if (msg.message == WM_COMMAND)
{
// This never happens:
MessageBox(NULL, "WM_COMMAND", "WM_COMMAND", MB_OK);
}
}
操作系统:Windows 8,因为WM_命令随SendMessage一起发送。它直接调用窗口过程。只有使用PostMessage发布的消息才能添加到队列中,并由GetMessage检索 您可以在Spy++之类的实用程序中看到这一点,它对使用p发布的消息和使用S发送的消息进行注释