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后立即放置消息循环?我的意思是在新的线程。