WM_SETHOTKEY message

Sent to a window to associate a hot key with the window. When the user presses the hot key, the system activates the window.

#define WM_SETHOTKEY                    0x0032

Parameters

wParam

The low byte of the low-order word specifies the virtual-key code to associate with the window.

The high byte of the low-order word can be one or more of the following values from CommCtrl.h.

Value Meaning
HOTKEYF_ALT
0x04
ALT key
HOTKEYF_CONTROL
0x02
CTRL key
HOTKEYF_EXT
0x08
Extended key
HOTKEYF_SHIFT
0x01
SHIFT key

The high-order word of wParam is ignored.

Setting wParam to NULL removes the hot key associated with a window.

lParam

This parameter is not used.

Return value

The return value is one of the following.

Return value Description
-1
The function is unsuccessful; the hot key is invalid.
0
The function is unsuccessful; the window is invalid.
1
The function is successful, and no other window has the same hot key.
2
The function is successful, but another window already has the same hot key.

Remarks

A hot key cannot be associated with a child window.

VK_ESCAPE, VK_SPACE, and VK_TAB are invalid hot keys.

When the user presses the hot key, the system generates a WM_SYSCOMMAND message with wParam equal to SC_HOTKEY and lParam equal to the window's handle. If this message is passed on to DefWindowProc, the system will bring the window's last active popup (if it exists) or the window itself (if there is no popup window) to the foreground.

A window can only have one hot key. If the window already has a hot key associated with it, the new hot key replaces the old one. If more than one window has the same hot key, the window that is activated by the hot key is random.

These hot keys are unrelated to the hot keys set by RegisterHotKey.

Requirements

Requirement Value
Minimum supported client
Windows 2000 Professional [desktop apps only]
Minimum supported server
Windows 2000 Server [desktop apps only]
Header
Winuser.h (include Windows.h)

See also

Reference

RegisterHotKey

WM_GETHOTKEY

WM_SYSCOMMAND

Conceptual

Keyboard Input