Win32:在该示例中,什么使我的消息循环工作不正确?

时间:2010-12-16 20:57:23

标签: c message winapi windows-messages message-loop

我最近遇到过想要在Win32中使用无模式对话框的情况。

Win32: Toolbar dialog seems to never get focus and causes the main window to process slow!?

我发现这是我的消息循环:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
    // Doing required stuff here...

    while (GetMessage(&Msg, hWnd, 0, 0) > 0) {
        // Processing messages here...
    }
}

事实上,只要我没有任何无模式对话框,这个消息循环就能正常工作,因为它可以很好地处理模态对话框,因为它们处理自己的消息循环。当我替换hWnd的{​​{1}}实例时,我的无模式对话框完美无缺。我只是没有区别,除了我似乎得到的消息不是一个特别的窗口。

有人可以解释是什么让这个消息循环正常工作吗?

就像这一个:

NULL

完美无瑕地工作!

1 个答案:

答案 0 :(得分:3)

差异非常明显:您在HWND中指定了GetMessage。因此,您不处理任何其他窗口的任何消息,包括您的工具栏。请参阅GetMessage

的文档