C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Блокировка модальной формы
DarkStar
Отправлено: 08.10.2004, 00:51


Ученик-кочегар

Группа: Участник
Сообщений: 20



Подскажите, плз. Как возможно блокировать события мыши и клавиатуры на время выполнения какого либо процесса. Просто хочу пока бежит мой прогресс бар пользователь не нажель чего в меню или на какйю ненужную кнопку ну или еще что-то типа того.
Нашел только блокировку всей машины smile.gif Но похоже что будет жестоко
Хлор
Отправлено: 08.10.2004, 03:50


Дежурный стрелочник

Группа: Участник
Сообщений: 78



Ну... есть такое св-во Enabled

CODE

Button->Enabled = false; // и тыкай на кнопку сколько хошь.....


Отредактировано Хлор — 08/10/2004, 04:54
Gedeon
Отправлено: 08.10.2004, 08:11


Ветеран

Группа: Модератор
Сообщений: 1742



Я правда не пробовал, а если на это время переопределить WndProc на NULL?
Konstantine
Отправлено: 08.10.2004, 10:13


Мастер участка

Группа: Модератор
Сообщений: 545



поставь HOOK . если функция находится в этой проге, то только на эту прогу и распространяется
xim
Отправлено: 08.10.2004, 16:07


Станционный диспетчер

Группа: Участник
Сообщений: 143



Можно переопределить событие OnMessage для аппликейшена методом:
CODE

void __fastcall <form_class>::app_message_handler(tagMSG &stMsg,bool &Handled)
{
  switch(stMsg.message)
  {
     // убираем то, что нужно убрать
     case WM_KEYDOWN:
     case WM_KEYUP:
     // etc
       
        Handled=true;
     return;
  }
}

При работе:
...
Application->OnMessage=<form_class object>->app_message_handler;
...
// делаем то, что должны
...
Application->OnMessage=NULL;
...
DarkStar
Отправлено: 09.10.2004, 01:16


Ученик-кочегар

Группа: Участник
Сообщений: 20



Пасибо всем.
Кстати, Enabled, с модальной формой работает как-то не так как надо, после того как я его устанавливаю в true, модальность формы теряется, и она может прятаться за ту форму из которой была создана sad.gif

Вернуться в Вопросы программирования в C++Builder