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

 

VC 2010-05-01 18:01:34 阅读287 评论字号: 订阅

1、注册快捷键

在初始化函数,如OnInitDialog() 注册快捷键,代码如下:

#define HotKeyID1 200

BOOL CDlgCloseProSetup::OnInitDialog()

{

CDialog::OnInitDialog();

::RegisterHotKey(m_hWnd, HotKeyID1, NULL, VK_HOME);

return TRUE;

}

RegisterHotKey()第一个参数为句柄,第二个为快捷键ID号,可自己任意定义,第三个为控制键,若不需可设为NULL,第四个为字母或数字,同样不需时可设为NULL 。

2、添加以下消息:

VS2008在VC/MFC中为程序定义全局快捷键 - 弘毅 - 弘毅

3.在OnHotKey函数中写入

void CJsEditDlg::OnHotKey(UINT nHotKeyId, UINT nKey1, UINT nKey2)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(nHotKeyId == HotKeyID1)
{
OnBnClickedBtnkill();

}

CDialog::OnHotKey(nHotKeyId, nKey1, nKey2);
}

4.添加WM_CLOSE消息,在OnClose函数中写入

VS2008在VC/MFC中为程序定义全局快捷键 - 弘毅 - 弘毅
void CJsEditDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
UnregisterHotKey(GetSafeHwnd(), HotKeyID1);
CDialog::OnClose();
}

原文地址:https://www.cnblogs.com/dengpeng1004/p/4530705.html