Создание диалога в новой теме - PullRequest
0 голосов
/ 22 сентября 2011

Предположим, если я создаю поток, используя CreateThread, и мне нужен модальный или немодальный диалог в этом потоке. Нужно ли использовать отдельный цикл сообщений для этого, как у меня здесь,

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

Но для модального диалога вы не используете это, так почему же он не должен работать, когда я создаю диалог?

1 Ответ

2 голосов
/ 22 сентября 2011

Когда вы используете модальный диалог, он создает собственную очередь сообщений, поэтому он работает. Если вы хотите использовать немодальные диалоги, вам придется создать очередь сообщений самостоятельно.

Из документации на DialogBox:

Макрос DialogBox использует функцию CreateWindowEx для создания диалогового окна. (snip) и запускает свой собственный цикл сообщений для извлечения и отправки сообщений для диалогового окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...