全局热键定义 VirtualKey.h
- #define IDH_HOT1 4001
- #define IDH_HOT2 4002
- #define IDH_HOT3 4003
- #define IDH_HOT4 4004
- #define IDH_HOT5 4005
- #define IDH_HOT6 4006
- #define IDH_HOT7 4007
- #define IDH_HOT8 4008
- #define IDH_HOT9 4009
- #define IDH_HOT10 4010
- #define IDH_HOT11 4011
- #define IDH_HOT12 4012
在InitialDialog里面注册自定义的热键
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT1, MOD_CONTROL, ‘Q‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT2, MOD_CONTROL, ‘W‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT3, MOD_CONTROL, ‘E‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT4, MOD_CONTROL, ‘R‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT5, MOD_CONTROL, ‘T‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT6, MOD_CONTROL, ‘Y‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT7, MOD_CONTROL, ‘U‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT8, MOD_CONTROL, ‘I‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT9, MOD_CONTROL, ‘O‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT10, MOD_CONTROL, ‘P‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT11, MOD_CONTROL, ‘A‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT12, MOD_CONTROL, ‘S‘);
- RegisterHotKey(this->GetSafeHwnd(),IDH_HOT13, MOD_CONTROL, ‘D‘);
在PreTranslateMessage方法里添加全局热键的事件响应
- BOOL CLedControllerDlg::PreTranslateMessage(MSG* pMsg)
- {
- char buffer[20];
- if( WM_HOTKEY == pMsg->message )
- {
- switch(pMsg->wParam)
- {
- case IDH_HOT1:
- strcpy(buffer,"CH$");
- break;
- case IDH_HOT2:
- strcpy(buffer,"EN$");
- break;
- case IDH_HOT3:
- strcpy(buffer,"BUSINESS1$");
- break;
- case IDH_HOT4:
- strcpy(buffer,"BUSINESS2$");
- break;
- case IDH_HOT5:
- strcpy(buffer,"BUSINESS3$");
- break;
- case IDH_HOT6:
- strcpy(buffer,"BUSINESS4$");
- break;
- case IDH_HOT7:
- strcpy(buffer,"BUSINESS5$");
- break;
- case IDH_HOT8:
- strcpy(buffer,"BUSINESS6$");
- break;
- case IDH_HOT9:
- strcpy(buffer,"NUM1$");
- break;
- case IDH_HOT10:
- strcpy(buffer,"NUM2$");
- break;
- case IDH_HOT11:
- strcpy(buffer,"NUM3$");
- break;
- case IDH_HOT12:
- strcpy(buffer,"NUM4$");
- break;
- case IDH_HOT13:
- strcpy(buffer,"NUM5$");
- break;
- }
- }
- return CDialog::PreTranslateMessage(pMsg);
- }