假设我使用CreateThread
创建一个线程,并且我想在该线程中使用模态或无模式对话框。我是否需要使用单独的消息循环,就像我在这里一样,
while(GetMessage(&msg, 0, 0, 0)) // Get any window messages
{
TranslateMessage(&msg); // Translate the message
DispatchMessage(&msg); // Dispatch the message
}
但是对于模态对话框,你没有使用它,那么为什么我在创建对话框时不能工作呢?
答案 0 :(得分:2)
当您使用模态对话框时,它会创建自己的消息队列,这就是它的工作原理。如果要使用无模式对话框,则必须自己创建一个消息队列。
来自DialogBox
的文档:
DialogBox宏使用CreateWindowEx函数创建对话框。 (剪辑)并启动自己的消息循环以检索和分派对话框的消息。