вопрос по MFC
Самый простой способ решить твою проблему - закрыть диалог и вызвать его снова. Сменить модальность динамически нельзя. Если только уж совсем извратиться...
Можно сделать модальность своими руками: по событию отдачи фокуса возвращать его на себя. А при желании снимать такой режим - окно снова станет немодальным.
Это не спасёт тебя от посылки сообщений нажатия кнопки на другом диалоге.
ладно, если нет, тогда тема закрыта.
спасибо всем!
Remarks
If an application is displaying a caret, the caret should be destroyed at this point.
While processing this message, do not make any function calls that display or activate a window. This causes the thread to yield control and can cause the application to stop responding to messages. For more information, see Message Deadlocks.
Понятно. Не знал.
в некоторый момент поставить на него
постоянный фокус, как у модального?
А в чем проблема? просто, не возвращай управления, а поставь message loop с фильтром на hwnd этого диалога. Я на MFC никогда не писал, только на чистом WIN API, но вроде можно это и на MFC сделать?.. А нельзя, тогда так и пиши на WIN API
for(;;)
{
::GetMessage(...);
::DispatchMessage(...);
...
if(...)
break;
}
написать прогу, которая будет хоть как-то работать
проблему решил так:
EnableWindow(false) - для остальных окон ...
Ага, перепиши. Потом будешь ненавидеть WINAPI. Спрашивается, зачем делать то, что уже сделано...
Оставить комментарий
t332
как для немодального диалога (кажется так он называется: модальный - тот,который "делается" функцией DoModal в некоторый момент поставить на него
постоянный фокус, как у модального?
т.е. сделать так, чтобы я не мог переключаться между другими диалогами
своего приложения пока не нажму, например, кнопку apply?