用户选择热键后,应用程序应使用HKM_GETHOTKEY消息从热键控件中检索热键。此消息检索包含描述热键的虚拟键代码和修饰符键的16位值。
以下功能从热键控件中检索组合键,然后使用WM_SETHOTKEY消息设置全局热键。请注意,您不能为具有WS_CHILD窗口样式的窗口设置全局热键。
// ProcessHotkey - 从热键控件中检索热键
//将其设置为应用程序主窗口的热键。
//如果成功返回TRUE,否则返回FALSE。
// hwndHot - 热键控件的句柄
// hwndMain - 主窗口的句柄
BOOL WINAPI ProcessHotkey(HWND hwndHot, HWND hwndMain)
{
WORD wHotkey;
UINT iSetResult;
//检索热键(虚拟键代码和修饰符)。
wHotkey = SendMessage(hwndHot, HKM_GETHOTKEY, 0, 0);
//将结果作为wParam用于WM_SETHOTKEY。
iSetResult = SendMessage(hwndMain, WM_SETHOTKEY, wHotkey, 0);
switch(iSetResult){
case 2: // WM_SETHOTKEY成功
MessageBox(NULL,“以前分配的热键”,
"Okay", MB_OK);
return TRUE;
case 1: // WM_SETHOTKEY成功
return TRUE;
case 0:
MessageBox(NULL,“热键无效”,
"Error", MB_OK);
return FALSE;
case -1:
MessageBox(NULL,“无效热键”,
"Error", MB_OK);
return FALSE;
默认:
MessageBox(NULL, "Unknown error", "Error", MB_OK);
return FALSE;
}
}