Win32 API. Окна
Страница 18. Блокирование окон


 

Блокирование окон

Окно может быть заблокировано. Заблокированное окно (disabled window) не принимает вводную информацию через клавиатуру или мышь от пользователя, но оно может принимать сообщения от других окон, из других прикладных программ и из Windows. Прикладная программа обычно отключает окно, чтобы предотвратить использование окна пользователем. Например, прикладная программа может отключить кнопку команды в диалоговом окне, чтобы предотвратить выбор ее пользователем. Прикладная программа может открыть доступ к заблокированному окну в любое время; давая возможность окну восстановить нормальный ввод информации.

По умолчанию, окно, когда создается, включено в работу. Однако, прикладная программа может определить стиль WS_DISABLED, чтобы отключить новое окно. Прикладная программа включает или отключает существующее окно, используя функцию EnableWindow. Windows посылает сообщение WM_ENABLE окну, когда собирается изменить его включенное состояние. Прикладная программа может определить, включено ли окно, используя функцию IsWindowEnabled.

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

Только одно окно одновременно может принимать ввод данных от клавиатуры; в этом окне, как говорят, находится фокус клавиатуры. Если прикладная программа использует функцию EnableWindow, чтобы отключить окно с фокусом клавиатуры, окно, в дополнение к отключению, теряет фокус клавиатуры. Затем EnableWindow устанавливает фокус клавиатуры в значение ПУСТО (NULL), не обозначая, какое окно имеет фокус. Если дочернее окно, или другое порожденное окно, имеет фокус клавиатуры, порожденное окно теряет фокус тогда, когда родительское окно заблокировано. Для получения дополнительной информации о фокусе клавиатуры, см. Ввод данных с клавиатуры.

 
« Предыдущая статья   Следующая статья »