C++ 在GetMessage循环中未接收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

有人能解释一下为什么我在GetMessage循环中从未收到WM_命令消息吗? 我已经检查过了,WndProc正在接收WM_命令消息,所以我很困惑为什么这不起作用

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发送的消息进行注释