mfc 设定快捷键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc 设定快捷键相关的知识,希望对你有一定的参考价值。

假如我在快捷键列表中设定了ID_HELP的快捷键为VK_F1,但运行后按F1还是没用。
是不是要编程?如何编?
是否对菜单、主界面和对话框都是一样的编程?如果不是,请问各自怎么处理?
MFC新手,请帮帮忙。

在public里:procedure wmhotkey(var msg:Twmhotkey);message wm_hotkey;
然后再定义一个常量用来存你热键消息,如
const myhotkey=139;
接着:
procedure Tform1.wmhotkey(var msg:Twmhotkey);
begin
if msg.hotkey=myhotkey then
showmessage('发财了!');
end;

procedure Tform1.formcreate(sender:Tobject);
begin
registerhotkey(form1.handle,myhotkey,0,vk_F1);//vk_F1为你想定义的热键代码
end;

procedure Tform1.formdestroy(sender:Tobject);
begin
unregisterhotkey(form1.handle,myhotkey);
end;

告诉你一个最简单的方法,你为窗体建一个右键菜单(PopupMenu),在菜单项中设快键,将此菜单关联到窗体(窗体的PopupMenu属性)后,将菜单的AutoPopup属性设为False这此菜单不能弹出,但快键还是有效!
参考技术A 你打开快捷键表~
1.看清楚了~
ID_HELP对应的键是什么?确定是VK_F1?
2.你这个ID_HELP没有对应菜单项~
例如你想启动菜单项中的"帮助",而这个菜单的ID是"ID_APP_ABOUT"
那么你就可以将ID_HELP该为ID_APP_ABOUT,这样就能实现目的~
PS:最好不要设置一些已经有的快捷键作为新的快捷键~
参考技术B 可以看看这里,希望对你有帮助。http://hi.baidu.com/wjc1986/blog/item/00cedd1ee007d365f624e4fa.html 参考技术C 你用wizzard生成的工程来加快捷键试试看,

如果是自己写的code,你可以2个比较一下

C# 设定菜单快捷键

摘要:C# 设定菜单快捷键


设定快捷键

快捷键是靠Command="ApplicationCommands.属性" 来运行的

所以其实那些快捷键都是默认好的,我们只要透过ApplicationCommands下的属性去对应要用什么快捷键即可

在WPF设定热键的方式很简单,只需要在功能表菜单选项名称时,在Header属性中使用 _热键字器? 的方式设定就可以了

热键跟快捷键的目的是蛮像的,不过热键 是用alt来启动热键的功能

快捷键通常是针对常使用的功能来设定


如有错误 欢迎指正

原文:大专栏  C# 设定菜单快捷键


以上是关于mfc 设定快捷键的主要内容,如果未能解决你的问题,请参考以下文章

MFC如何添加菜单快捷键

在 MFC Web 浏览器控件中禁用键盘快捷键的方法

MFC中CEdit实现快捷键

MFC如何添加菜单快捷键

在 MFC 的 PretranslateMsg 中使用“Alt + num”获取快捷键失败?

检测被主机 mfc 加速器吞噬的 WinForm 中的键盘快捷键