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按钮怎么设置为快捷键的主要内容,如果未能解决你的问题,请参考以下文章