在VC/MFC编程中,可以为程序定义自己的全局快捷键,如不管在任何地方按下Ctrl+Alt+Z即可显示QQ窗口。
1、注册快捷键
在初始化函数,如OnInitDialog() 注册快捷键,代码如下:
BOOL CDlgCloseProSetup::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
::RegisterHotKey(m_hWnd,199,MOD_CONTROL,'Z');
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
RegisterHotKey()第一个参数为句柄,第二个为快捷键ID号,可自己任意定义,第三个为控制键,若不需可设为NULL,第四个为字母或数字,同样不需时可设为NULL
2、在头文件中添加以下消息声明:
afx_msg long OnHotKey(WPARAM wParam,LPARAM lParam);
3、在cpp文件中添加:
BEGIN_MESSAGE_MAP(CDlgCloseProSetup, CDialog)
//{{AFX_MSG_MAP(CDlgCloseProSetup)
ON_MESSAGE(WM_HOTKEY,OnHotKey) //添加此句
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
4、添加快捷键响应的成员函数:
HRESULT CDlgCloseProSetup::OnHotKey(WPARAM wParam,LPARAM lParam)
{
if(wParam==199)
{
AfxMessageBox("全局快捷键");
}
return TRUE;
}