hotkey控件的使用。
UINT ModToHotkey(UINT fsModifiers) { if ((fsModifiers & MOD_SHIFT) && !(fsModifiers & MOD_ALT)) { fsModifiers &= ~MOD_SHIFT; fsModifiers |= HOTKEYF_SHIFT; } else if (!(fsModifiers & MOD_SHIFT) && (fsModifiers & MOD_ALT)) { fsModifiers &= ~MOD_ALT; fsModifiers |= HOTKEYF_ALT; } return fsModifiers; }
UINT HotkeyToMod(UINT fsModifiers) { if ((fsModifiers & HOTKEYF_SHIFT) && !(fsModifiers & HOTKEYF_ALT)) { fsModifiers &= ~HOTKEYF_SHIFT; fsModifiers |= MOD_SHIFT; } else if (!(fsModifiers & HOTKEYF_SHIFT) && (fsModifiers & HOTKEYF_ALT)) { fsModifiers &= ~HOTKEYF_ALT; fsModifiers |= MOD_ALT; } return fsModifiers; }
void CtesseractDemoDlg::OnBnClickedBtnSavehotkey() { WORD wVirtualKeyCode; WORD wModifiers; m_hotkey.GetHotKey(wVirtualKeyCode, wModifiers); if (wVirtualKeyCode && wModifiers) { UnregisterHotKey(GetSafeHwnd(), m_iHotKeyId);
wModifiers = HotkeyToMod(wModifiers); if (0 == RegisterHotKey(GetSafeHwnd(), m_iHotKeyId, wModifiers | MOD_NOREPEAT, wVirtualKeyCode)) { OutputDebugString(_T("register hotkey failed.\n")); } } }
|
设置默认值
void SetHotKey( WORD wVirtualKeyCode, WORD wModifiers);
|