Posted on 2007-01-12 15:38
梁海泉 阅读(360)
评论(0) 编辑 收藏 引用
/****************************************************************/
接收热键消息函数
在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP之间插入下面的宏
ON_MESSAGE(WM_HOTKEY,&CmyDlg::OnHotKey)
其中OnHotKey是要接收热键的对话框的成员函数。原型如下:
afx_msg HRESULT OnHotKey(WPARAM wp,LPARAM lp);
其中WPARAM是注册热键的时候的HotKeyID
/****************************************************************/
注册热键函数
RegisterHotKey(m_hWnd,HotKeyID,m,k);
参数1:要接收热键消息的窗口
参数2:热键号码,自己定义的一个整数,区分一个窗口中的多个热键
参数3:系统键
参数4:虚拟键
/****************************************************************/
从热键控件中得到热键
#define KEY(m,fm) if (m & HOTKEYF_ALT) \
fm |= MOD_ALT; \
if (m & HOTKEYF_CONTROL) \
fm |= MOD_CONTROL; \
if (m & HOTKEYF_SHIFT) \
fm |= MOD_SHIFT; \
CHotKeyCtrl m_HotKey;
m_HotKey.GetHotKey(k,m);
KEY(m,fm)
RegisterHotKey(m_hWnd,HotKeyID,m,k);