您的位置:首页 > 其它

MFC VS2015设置快捷键响应函数

2017-12-20 16:54 736 查看

1、打开资源管理视图

添加或修改快捷键资源



注意,这里的IDR_MAINFRAME是快捷键资源,每个快捷键下的ID是快捷键ID,待会要用到的是前者,不要搞错。

比如要给Ctrl+C添加函数,右键该ID添加响应函数到需要的类下



编写响应函数的内容如:

void COutputWnd::OnEditCopy()
{
CString strLabel;
m_wndTabs.GetTabLabel(m_wndTabs.GetActiveTab(), strLabel);
if (strLabel == _T("1"))
{
m_wnd1.Copy();
}
else if (strLabel == _T("2"))
{
m_wnd2.Copy();
}
else if (strLabel == _T("3"))
{
m_wnd3.Copy();
}
}


2、添加快捷键消息截获

在相应类的头文件中

HACCEL m_hAccel;
virtual BOOL PreTranslateMessage(MSG* pMsg);


在cpp中的OnCreate或者OnInitDialog中添加

m_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME));


注意这里的IDR_MAINFRAME是快捷键资源ID,不是单个快捷键的ID

最后加上解析函数

BOOL CXXX::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if (m_hAccel)
{
if (::TranslateAccelerator(m_hWnd, m_hAccel, pMsg))
{
return(TRUE);
}
}
return CXXX::PreTranslateMessage(pMsg);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: