检索并设置热键

【勇芳软件工作室】汉化HomePreviousNext

用户选择热键后,应用程序应使用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;

}

}