在VC/MFC中为程序定义全局快捷键

在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;
}

posted @ 2012-07-19 19:25  happyboy2  阅读(273)  评论(0编辑  收藏  举报