题
我试图让用户定义为我的应用程序的全局热键。这是我的应用程序代码,
<强> user.rc 强>
CONTROL "", IDC_MHOTKEY, HOTKEY_CLASS, WS_TABSTOP, 91, 86, 68, 14
<强> function.cpp 强>
WORD wHotKey = SendDlgItemMessage(hwnd, IDC_MHOTKEY, HKM_GETHOTKEY, 0, 0);
GLOBAL_HOTKEY= wHotKey;
RegisterHotKey ( NULL, TURN_OFF_HOTKEY, HIBYTE(LOWORD(wHotKey)) , wHotKey);
<强>的main.cpp 强>
if ( messages.message == WM_HOTKEY && ( HIWORD ( messages.lParam ) == GLOBAL_HOTKEY) )
alert("Coming only for Single Key");
此代码的效果很好,只有如果用户选择单个键和不工作时,他选择多个键组合像CTRL + F8。
解决方案
您需要将虚拟键隔离出wHotKey值:
RegisterHotKey ( NULL,
TURN_OFF_HOTKEY,
HIBYTE(LOWORD(wHotKey)), // Modifiers
LOBYTE(LOWORD(wHotKey)) // Virtual key
);
不隶属于 StackOverflow