C++ 在新线程中创建对话框

C++ 在新线程中创建对话框,c++,multithreading,winapi,dialog,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 } 但是

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

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

但是对于模态对话框,您不使用它,所以为什么在我创建对话框时它不工作?

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

对话框的文档中

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


我是否需要在创建窗口或DIOG后立即放置消息循环?我的意思是在新的线程。