1

我最近遇到了一种情况,我想在 Win32 中使用无模式对话框。

Win32:工具栏对话框似乎永远无法获得焦点并导致主窗口处理缓慢!?

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

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当我将实例替换为NULL. 我只是不明白其中的区别,只是似乎我收到的消息不是针对某个特定窗口的消息。

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

作为这个:

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

完美无瑕!

4

1 回答 1

3

区别非常明显:您指定了 a HWNDin GetMessage。因此,您没有处理任何其他窗口的任何消息,包括您的工具栏。请参阅GetMessage的文档

于 2010-12-16T21:03:51.437 回答