热键控件使用示例 CHotKeyCtrl

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

记得以前刚学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 记事本程序!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航