MFC中为菜单或按钮添加快捷键功能
1、新建一快捷键资源,ACCELERATOR,关联相应的ID号,下图所示中,其中,第一个ID为自定义快捷键ID,按CTRL+R,此时响应该ID以应的消息响应函数,
第二个ID为菜单ID,此时按CTRL+V,调出ID_NETWORK_PING菜单对应的响应函数。
2、声明一个全局变量HACCEL hAccTable;
3、在OnInitDialog()函数中,添加如下代码:
hAccTable=LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
4、添加PreTranslateMessage重载函数,在函数中,添加如下代码:
BOOL CComDlg::PreTranslateMessage(MSG* pMsg)
{
if (::TranslateAccelerator(GetSafeHwnd(),hAccTable,pMsg))
{
return true;
}
return CDialog::PreTranslateMessage(pMsg);
}
5、此时假如如上述快捷键菜单中,第一个ID对应的自定义ID,对应的响应函数如下:
void CComDlg::OnAccelerator()
{
system("regedit");
}
第二个ID为网络测试对话框程序,
那么编译成功后,按CTRL+R调出注册表(regedit),按CTRL+V,调出网络测试对话框。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架