在新线程中创建对话框

时间:2011-09-22 04:35:06

标签: c++ multithreading winapi dialog

假设我使用CreateThread创建一个线程,并且我想在该线程中使用模态或无模式对话框。我是否需要使用单独的消息循环,就像我在这里一样,

while(GetMessage(&msg, 0, 0, 0)) // Get any window messages
{
    TranslateMessage(&msg); // Translate the message 
    DispatchMessage(&msg); // Dispatch the message
}

但是对于模态对话框,你没有使用它,那么为什么我在创建对话框时不能工作呢?

1 个答案:

答案 0 :(得分:2)

当您使用模态对话框时,它会创建自己的消息队列,这就是它的工作原理。如果要使用无模式对话框,则必须自己创建一个消息队列。

来自DialogBox的文档:

  

DialogBox宏使用CreateWindowEx函数创建对话框。 (剪辑)并启动自己的消息循环以检索和分派对话框的消息。