![]() |
【转帖】热键控件使用示例 CHotKeyCtrl
记得以前刚学VC时候不知道怎么使用控件面斑上的 HOTKEY控件, 那时看不懂MSDN英文帮助,在网上找了好久都无该控件的使用帮助,今天整理硬件看到我写的这个代码,看看是这么的简单啊,:)
================================================================================== BOOL CMyHotKeyDlg::OnInitDialog() { CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon //获取 NOTEPAD路径 char path[100]; GetWindowsDirectory(path,100); strcat(path,"notepad.exe"); m_path.Format("%s",path); UpdateData(FALSE); //也可以设置热键规则,以下代码限制只能使用CTRL+ 形式的热键 //m_hotkey.SetRules(HKCOMB_C,HOTKEYF_CONTROL); //设置默认热键 m_hotkey.SetHotKey(VK_F2,MOD_CONTROL); return TRUE; } //安装热键代码 void CMyHotKeyDlg::OnSetup() { //获得热键虚拟码和标志符 WORD virtualcode,modifiers; m_hotkey.GetHotKey(virtualcode,modifiers); //设置热键ID=100 if (!RegisterHotKey(this->m_hWnd,100,modifiers,virtualcode)) MessageBox("热键设置错误,可能重复了!"); else MessageBox("热键设置成功!"); } void CMyHotKeyDlg::OnHotKey(WPARAM wParam,LPARAM lParam) { //自定义消息 WM_HOTKEY if (wParam==100) { UpdateData(TRUE); //执行 ShellExecute(this->m_hWnd,"open",m_path,NULL,NULL,SW_SHOW); } } 需要字定义消息WM_HOTKEY BEGIN_MESSAGE_MAP(CMyHotKeyDlg, CDialog) //{{AFX_MSG_MAP(CMyHotKeyDlg) ............................ ON_MESSAGE(WM_HOTKEY,OnHotKey) //}}AFX_MSG_MAP END_MESSAGE_MAP() // Generated message map functions //{{AFX_MSG(CMyHotKeyDlg) ................ afx_msg void OnHotKey(WPARAM wParam,LPARAM lParam); //}}AFX_MSG 很简单一个使用示例,代码演示了怎么设置各种热键以便打开 WINDOWS 记事本程序! |
所有的时间均为北京时间。 现在的时间是 06:01 PM. |