Модальное окно из обработчика сообщений в WTL / Winapi

У меня есть небольшое приложение, в котором есть окно WTL только для сообщений, которое выполняет фоновую обработку. Но при некоторых обстоятельствах я хотел бы показать окно, которое должно вести себя как модальное, то есть обработчик сообщения окна только сообщения не должен возвращаться, пока пользователь не нажмет кнопку.

Я думал, что смогу сделать это так (псевдокод):

LRESULT OnMessageWndHandler1(...)
{
     CModalWindow wnd;
     wnd.create(...)

     while(GetMessageLoop){}
}

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

Скорее всего я что-то делаю не так, но не знаю, какой и как должен быть правильный подход. Модальное окно полностью генерируется кодом.


person Coder    schedule 02.03.2011    source источник
comment
Отладка с реальным кодом достаточно сложна   -  person David Heffernan    schedule 02.03.2011


Ответы (2)


Я хотел бы показать окно, которое должно вести себя как модальное ...

В моих необычных, но полезных классах на основе диалогов, разработанных для специализации вы найдете способ вызова DoModal () в любом элементе управления или самодельном окне.

person Alain Rist    schedule 03.03.2011

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

person Coder    schedule 02.03.2011