C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 10.3 - Фокус и активизация клавиатуры / Клавиатура. / Win32 API

10.3 - Фокус и активизация клавиатуры

Windows посылает сообщения клавиатуры в очередь сообщений активного потока, который создал окно с фокусом клавиатуры. Фокус клавиатуры (keyboard focus) - временное свойство окна. Windows дает возможность совместно использовать клавиатуру всем окнам на экране, при помощи перемещения фокуса клавиатуры по указанию пользователя из одного окна в другое. Окно, которое имеет фокус клавиатуры, принимает (из очереди сообщений потока, который создал его) все сообщения клавиатуры, пока фокус не перейдет к другому окну.

Поток может вызывать функцию GetFocus, чтобы определить, которое из его окон (если есть в наличии) в настоящее время имеет фокус клавиатуры. Поток может дать фокус клавиатуры одному из своих окон, при помощи вызова функции SetFocus. Когда фокус клавиатуры меняет одно окно на другое, система отправляет сообщение WM_KILLFOCUS окну, которое потеряет фокус, а затем отправляет сообщение WM_SETFOCUS окну, которое получает фокус.

Концепция фокуса клавиатуры связывается с понятием активного окна. Активное окно (active window) - окно верхнего уровня, с которым пользователь в настоящее время работает. Окно с фокусом клавиатуры является или активным окном, или дочерним окном активного окна. Таким образом, чтобы пользователь мог легко идентифицировать активное окно, система размещает его сверху в Z-последовательности и делает выделенными область его заголовка (если оно является единственным) и рамку.

Пользователь может активизировать окно верхнего уровня, щелкнув по нему мышью, выбрать его, используя комбинацию клавиш ALT+TAB или ALT+ESC, или выбрать его, если оно в Списке Задач (Task List). Поток может активизировать окно верхнего уровня, используя функцию SetActiveWindow. Он может определить, является ли окно верхнего уровня, которое он создал активным, используя функцию GetActiveWindow.

Когда одно окно деактивизируется, а другое активизируется, Windows сначала отправляет сообщение WM_ACTIVATE деактивизируемому, а затем активизируемому окну. Младшее слово параметра wParam равно нулю, если окно деактивизируется, и отличается от нуля, если оно активизируется. Когда заданная по умолчанию оконная процедура принимает сообщение WM_ACTIVATE, она устанавливает фокус клавиатуры в активном окне.


| |
Автор Владимир Соковиков.
[AD]