Keyboard Focus and Activation
Windows posts keyboard messages to the message queue of the foreground thread
that created the window with the keyboard focus. The
keyboard focus is a temporary property of a window. Windows shares the keyboard among all
windows on the display by shifting the keyboard focus, at the user's direction,
from one window to another. The window that has the keyboard focus receives
(from the message queue of the thread that created it) all keyboard messages until
the focus changes to a different window.
A thread can call the
GetFocus function to determine which of its windows (if any) currently has the
keyboard focus. A thread can give the keyboard focus to one of its windows by calling
the
SetFocus function. When the keyboard focus changes from one window to another, the
system sends a
WM_KILLFOCUS message to the window that has lost the focus, and then sends a
WM_SETFOCUS message to the window that has gained the focus.
The concept of keyboard focus is related to that of the active window. The
active window is the top-level window the user is currently working with. The window with
the keyboard focus is either the active window, or a child window of the active
window. So the user can easily identify the active window, the system places it
at the top of the Z order and makes its title bar (if it has one) and border
highlighted.
The user can activate a top-level window by clicking it, selecting it using
the ALT+TAB or ALT+ESC key combination, or selecting if from Task List. A thread can activate a
top-level window by using the
SetActiveWindow function. It can determine whether a top-level window it created is active by
using the
GetActiveWindow function.
When one window is deactivated and another activated, Windows sends the
WM_ACTIVATE message first to the window being deactivated, then to the window being
activated. The low-order word of the
wParam parameter is zero if the window is being deactivated and nonzero if it is
being activated. When the default window procedure receives the WM_ACTIVATE
message, it sets the keyboard focus to the active window.
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database