MFC按钮怎么设置为快捷键

Posted

tags:

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

比如一个确定按钮,在属性那里改ID为:确定(&**),那么**里可以加哪些,系统热键怎么加??比如Alt+s是这样写吗:确定(&Alt+s),回车键呢?ID为:确定(&enter),好像不对啊,所有快捷键是加什么的,详细说下

不是所有的按钮都能加快捷。

Accelerator 里的,例如 IDR_MAINFRAME 里的 东西可以。
选一个 ID, 打开 Accel Properties,
你可以在 Modifiers 里选 Ctrl 或 Alt 或 Shift
在Type 里选 ASCII 键 或 VirtKey 键
然后在 Key 的 下拉窗里选 具体的键
------------------------------------------
如果你直接写 .rc 文件,写法:
IDR_MAINFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&New\tCtrl+N", ID_FILE_NEW
MENUITEM "&Open...\tCtrl+O", ID_FILE_OPEN
MENUITEM "&Close", ID_FILE_CLOSE
....
END
END
IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE
BEGIN
"N", ID_FILE_NEW, VIRTKEY, CONTROL
.....
VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT
VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT
....
END
END

===============
回车键可能是: VK_RETURN。 你要查虚拟键表。一般不用它 做快捷。
参考技术A 按钮添加成员
ACCEL m_accel;
HACCEL m_hAccel;
#define WM_MYBUTTON (WM_USER+1000)
CMybutton::CMybutton()

m_accel.fVirt = FVIRTKEY|FCONTROL;
m_accel.key = 'A';
m_accel.cmd = WM_MYBUTTON ;
m_hAccel = ::CreateAcceleratorTable( &m_accel , 1 );

CMybutton::~CMybutton()

DestroyAcceleratorTable( m_hAccel );

这样按 Ctrl + A button就会收到 WM_MYBUTTON ;

BEGIN_MESSAGE_MAP(CTEdit, CODrawEdit)
ON_COMMAND( WM_MYBUTTON , OnMyButton )
END_MESSAGE_MAP()
void CMybutton::OnMyButton ()

//do Customized Operation
本回答被提问者采纳
参考技术B 这里有人说的比我详细 我就不班门弄虎了

猎豹MFC--CMenu菜单 设置主菜单 给主对话框设置菜单 设置快捷菜单

设置主菜单(不是快捷菜单):
技术分享
给主对话框设置菜单:
技术分享

效果如下:
技术分享
修改菜单的ID使之便于记忆:
给菜单添加消息处理:
技术分享
技术分享
添加处理代码:
技术分享


设置快捷菜单:
技术分享
打开对话框,属性添加消息  上文菜单  快捷菜单消息:
技术分享

技术分享
技术分享

修改各个菜单选项的按钮ID:
技术分享
添加事件处理程序:
技术分享
技术分享
技术分享
技术分享




























以上是关于MFC按钮怎么设置为快捷键的主要内容,如果未能解决你的问题,请参考以下文章

mfc 设定快捷键

在MFC 如何设置按钮的颜色

MFC中弹出对话框的属性怎么设置?

MFC 在自定义工具栏上添加有下拉菜单的按钮。

MFC怎么实现按钮保持在被选中状态?

如何将已经设置好的VC MFC 矩形按钮改成圆形 工程的基类是CView