2010-04-04 98 views
1

我正在嘗試爲我的應用程序獲取用戶定義的全局熱鍵。這裏是我的應用程序代碼,自定義全局熱鍵

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)組合,則該鍵不工作。

回答

1

您需要的虛擬鍵分離出來的wHotKey值:

RegisterHotKey (NULL, 
    TURN_OFF_HOTKEY, 
    HIBYTE(LOWORD(wHotKey)),   // Modifiers 
    LOBYTE(LOWORD(wHotKey))   // Virtual key 
); 
+0

這是很酷;)終於解決了問題!謝謝Nobugz :) – ukanth 2010-04-04 13:54:50