Всем привет! Если в главном окне программы открыть диалог (модальный), то выполнение главного окна блокируется, не реагируя на все нажатия, пока диалог не будет закрыт. Можно было по нажатию какой-нибудь кнопки открывать диалог и при этом запускать таймер, потом по событию таймера закрывать диалог, и дальше работать с главным окном. Такой вот вопрос: как создать такую же ситуацию без диалога, как заблокировать главное окно? НО чтобы события таймера при этом обрабатывались. Это нужно для того чтобы, по нажатию определенной кнопки начинают производиться расчеты, при этом курсор меняется на иконку песочных часов и главное окно не должно реагировать ни на что (не на нажатия мыши, не на клавиатуру) пока эти расчеты не закончатся. Как это сделать???
1) поставить стиль WM_DISABLED окну либо 2) сделать флаг bool bProcessMessages, который изначально равен 1, а при выполнении действий сбрасывается в ноль. в цикле проверки сообщений если bProcessMessages==0 не обрабатывать ничего, кроме таймера
Не проходит, т.к. у меня MDI-приложение. Таким образом не блокируется переключение между окнами, а надо Я пишу на платформу Linux, как я понял сообщения - это события, а событие допустим нажатия кнопки генерируется уже после нажатия. Или сообщения это что то другое?
fastmod Хотелось бы добавить/уточнить что в *никсах (как минимум под Gnome & KDE) главное окно в этом случае блокируется, но оно не перестает реагировать на некоторые *нажатия* как например минимизация, увеличение, перемещение и наконец закрытие окна (да, даже при наличии модального диалога). Это *новшество* (в отличии от мелкомягких) мне очень нравится (не стану говорить почему). Решил напомнить об этом факте на случай если это важно для твоей будущей программы.
Добавлю, еслиб ты писал на Java, это было бы очень легко сделать и работало бы одинаково на всех платформах, но на асме или С не знаю.