Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Деактивация всех окон.

21K
18 декабря 2006 года
ruFog
6 / / 18.12.2006
Здравствуйте! Возникла задача, которую я не могу решить с использованием поисковика. Возможно, не правильно формулирую запрос...
Суть в том, что получив указатели на все окна, активные в данный момент я не знаю как их сделать неактивными. Есть же какая-то функция? Можно конечно просто спрятать окно, но я хочу именно блокировки. Подскажите пожалуйста. Заранее благодарен.
309
18 декабря 2006 года
el scorpio
1.1K / / 19.09.2006
Во-первых, для формы можно сделать свойство Enabled равным false. Эффект поразительный - вроде бы на первый взгляд нормальная форма, но с ней нельзя сделать ничего. Если вы сделаете такое с "главной" формой, то программу можно будет закрыть только через пиктограмму программы на панели задач внизу экрана.
Далее, несмотря на то, что у объекта Application напрямую доступна только главная форма (свойство MainForm), ещё есть свойство Components - список принадлежащих ему объектов - которое можно перебрать через цикл:
 
Код:
TForm *Form = NULL; // Временная переменная
for (int i = Application->ComponentCount-1; i >= 0; i--)
    if ((Form = dynamic_cast <TForm*> (Application->Components )) != NULL)
         Form->Enabled = false;
21K
18 декабря 2006 года
ruFog
6 / / 18.12.2006
Ой! Я наверное неверно изложил задачу. Я пишу программу, которая должна блокировать все окна (т.е. окна не привязанные к процессу, в рамках которого выполняется моя программа). У меня есть дескрипторы (hWnd) всех запущенных в системе окон. Какую функцию нужно вызвать, чтобы заблокировать эти окна. Т.е. грубо говоря, чтобы всем окнам передать сигнал, по которому они включили у себя Form.Enable=false.
309
19 декабря 2006 года
el scorpio
1.1K / / 19.09.2006
Красиво ;)
А винда за это не обидиться :D


Если честно, какая цель данного деяния. Ибо похоже на весьма злую шутку, за которую можно получить взыскание в личное тело :(
520
11 января 2007 года
inkognitum
155 / / 03.05.2006
EnableWindow(hWND ,0);


После этого точно можно взыскание в личное тело получить :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог