Почему модальное диалоговое окно в MFC на самом деле внутренне немодально?

Этот вопрос возник в моем сознании после прочтения этой статьи: http://www.codeproject.com/Articles/3911/The-singular-non-modality-of-MFC-modal-dialogs. Он упоминает, что модальное диалоговое окно в MFC не является строго модальным, но реализовано как немодальное диалоговое окно (внутренне) с наворотами, чтобы заставить его вести себя как модальное.

В частности, он говорит:

Механизм маршрутизации команд MFC использует комбинацию карт сообщений
и виртуальные функции для достижения того, что он делает, и настоящий модальный диалог
полностью разрушит этот механизм, потому что тогда модальный цикл сообщений
управляется за пределами механизма маршрутизации команд MFC

Может ли кто-нибудь объяснить это утверждение? Пример того, что пошло бы не так, если бы они попытались реализовать действительно модальный диалог, очень многое прояснит.

1

Решение

Модальное диалоговое окно останавливает ваш цикл сообщений, но все равно должен быть цикл сообщений для обработки событий для диалога. Таким образом, модальное диалоговое окно просто немодальное диалоговое окно со своим собственным внутренним циклом сообщений.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]