Фокус вводу та Активація

Система повідомлення клавіатури повідомлень в темі переднього плану, створений у вікно з фокусу клавіатури, черга повідомлень. Фокус вводу є тимчасове власності вікна. Система акцій клавіатури серед всіх вікон на екрані за допомогою переходу фокусу клавіатури в напрямку користувача, з одного вікна до іншого. Вікно, яке має фокус вводу отримує (від черга повідомлень в темі, які його створили) усі клавіатури повідомлення, поки користувач змінює до іншого вікна.

Потік можна зателефонувати функцію " GetFocus ", щоб визначити, які з її windows (за наявності) в даний час має фокус вводу. Потік може дати фокусу клавіатури в один з її windows шляхом виклику функції SetFocus . Під час зміни фокусу клавіатури з одного вікна до іншого система надсилає повідомлення WM_KILLFOCUS вікна, що втратив фокус і потім відправляє повідомлення WM_SETFOCUS до вікна, яке отримало фокус.

Концепція фокусу клавіатури пов'язані з активного вікна. Активне вікно є користувач працює з вікно верхнього рівня. Вікно з фокусу клавіатури є активного вікна, або дочірнього вікна активного вікна. Так що користувач може легко визначити активного вікна, система ставить його на вершині Z-послідовності і робить його рядок заголовка (якщо вона має одну) і межі, виділений.

Користувач може активувати вікно верхнього рівня, клацнувши його, виділивши його за допомогою клавіші alt + tab або сполучення клавіш alt + esc або вибору зі списку завдань. Потік може активувати вікно верхнього рівня за допомогою SetActiveWindow функції. Це можна визначити, чи вікно верхнього рівня його створено активний за допомогою функції GetActiveWindow.

Коли одне вікно деактивовано, а інший активовано, система надсилає повідомлення WM_ACTIVATE . Низька замовлення слово wParam параметр дорівнює нулю, якщо вікно в даний час відключити і ненульовим, якщо вона буде активована. Коли процедура вікна за замовчуванням отримує WM_ACTIVATE повідомлення, встановлює фокус вводу активного вікна.

Index