令。例如 Visual C++ IDE 中复制和粘贴的快捷键分别是 Ctrl+C 和 Ctrl+V,这两个快捷键就是
直接关联到 IDE “编辑”菜单下的“复制”和“粘贴”菜单项。与菜单项的关联只需要将加
速键的 ID 设置为对应菜单项的 ID,比如 Ctrl+C 的 ID 设置为 ID_EDIT_COPY 就可以关联到
ID 同样是 ID_EDIT_COPY 的“编辑”菜单下的“复制”菜单项。
下面以在 3。2。1 节中创建的工程中添加加速键为例介绍添加加速键的方法。
(1)在集成开发环境(IDE )左侧单击“ResourceView ”选项卡,在树状列表中寻找
“
Accelerator ”节点下的“IDR_MAINFRAME ”子节点,单击该节点就会在右侧客户窗口中打
开加速键资源 IDR_MAINFRAME 的加速键列表,如图 3…10 所示。IDR_MAINFRAME 加速
键资源是 AppWizard 在创建应用程序时默认添加的,一般无需另外创建新的加速键资源。
(2 )双击编辑界面右侧客户区最下方的虚线框,打开一个加速键属性编辑对话框,如图
3…11 所示,在该对话框中即可添加新的加速键。
在属性编辑对话框的“ID ”文本框中输入“ID_MOVIE1 ”,对应“大话西游”菜单项下
的“月光宝盒”菜单项的 ID,输入完毕后“ID ”文本框会自动显示“ID_MOVIE1=数字”,
这里数字表示 ID_MOVIE1 的数值,一般由 Visual C++ 自动给出,用户无需更改。
在“Key ”文本框中输入“Y ”,选中“Modifiers ”区域中的“Ctrl ”复选框,取消其他复
选框的的选取,在“Type ”区域中选中“VirtKey ”单选框,表示使用虚拟键(Virtual Key )。
这样就建立起加速键 Ctrl+Y 和“月光宝盒”菜单项的对应 。程序运行后,只需按 Ctrl+Y
键就可以选择“月光宝盒”菜单项,触发相应的命令消息了。
图 3…10 加速键资源编辑界面
·50 ·
…………………………………………………………Page 60……………………………………………………………
第 3 章 菜单与加速键
图 3…11 “月光宝盒”加速键资源编辑界面
(3 )按照步骤(2 )中的方法,加入加速键 Ctrl+L 与“仙履奇缘”菜单项的对应,相应
的属性对话框如图 3…12 所示。
图 3…12 “仙履奇缘”加速键资源编辑界面
(4 )完成加速键的添加后,为了完善用户界面,需要在菜单项标题中添加加速键的说明。
在 IDE 左侧的“ResourceView ”选项卡中,展开“Menu ”节点,双击 IDR_MAINFRAME 进
入 IDR_MAINFRAME 菜单资源编辑界面。然后在 IDE 右侧客户区中单击“大话西游”菜单
项,弹出子菜单,在“月光宝盒”菜单项上双击鼠标左键,弹出属性编辑对话框,将“Caption ”
文本框中的标题修改为“月光宝盒(&Y)tCtrl+Y ”,如图 3…13 所示。其中“t ”表示“Ctrl+Y ”
的显示与前面“月光宝盒(&Y) ”之间隔一个制表位(Tab )。
图 3…13 添加“月光宝盒”的加速键说明
(5 )参照前一步,在“仙履奇缘”菜单标题中加上 Ctrl+L 的加速键说明。
3。3 添加菜单所需处理函数
前一节介绍了创建和添加菜单资源的方法,但添加菜单资源只是创建菜单的第一步。用
户编译执行前一节的例子就会发现,运行时关闭所有文档,程序显示的 IDR_MAINFRAME
菜单中“大话西游”下的两个菜单项都是禁用的。这是因为缺少相应的用户处理函数,主框
·51 ·
…………………………………………………………Page 61……………………………………………………………
Visual C++ 6。0 程序设计从入门到精通
架类自动禁用了这两个菜单项。因此还需要为菜单消息添加消息处理函数。同时为了完善菜
单的各种功能,还需要在运行中动态地创建和修改菜单,并添加代码。本节将详细讲解这些
内容。
3。3。1 添加普通菜单的处理函数
1.添加菜单命令处理函数
由 AppWizard 创建的应用程序会在程序运行时自动将菜单资源装入内存 。用户只需要添
加相应消息处理函数即可完成菜单的基本功能。下面以 3。2 节中创建的菜单为例,分步骤讲
解如何为应用程序添加菜单命令消息处理函数。
(1)在 IDE 主菜单栏中依次选择“View|ClassWizard ”菜单命令或者在 IDE 界面中直接
使用快捷键 Ctrl+W 打开“ClassWizard ”对话框,单击“Message Maps ”选项卡。
(2 )添加“月光宝盒”菜单项的消息处理函数。在“Class name ”下拉列表框中选择需
要编辑的类—主框架类 CMainFrame,在“Object IDs ”列表框中选择需要添加处理函数的
命令消息 ID—ID_MOVIE1 “月光宝盒”,双击“Messages ”列表框中的 MAND 或者
在其上单击鼠标左键,然后单击“Add Function ”按钮,为 ID_MOVIE1 添加命令消息处理函
数。在弹出的如图 3…2 所示的对话框中直接单击“OK ”按钮(对话框中函数名为默认的
OnMovie1 ),返回 ClassWizard 对话框。可以看见在“Member functions ”列表中已经添加了
一个名为 OnMovie1 的新函数。
(3 )按照步骤(2 )中的方法,为 ID 为 ID_MOVIE2 “仙履奇缘”的菜单项添加消息处
理函数 OnMovie2() 。添加后的 ClassWizard 对话框内容如图 3…14 所示。
图 3…14 添加了两个命令消息处理函数后的 ClassWizard 对话框
(4 )在“Member functions ”列表框中选择函数 OnMovie1,单击“Edit Code ”按钮, 关
闭 ClassWizard 对话框,自动打开 MainFrm。cpp 文件,并将光标定位在 OnMovie1()函数体中,
·52 ·
…………………………………………………………Page 62……………………………………………………………
第 3 章 菜单与加速键
在这里添加相应代码。这里为 OnMovie1()函数添加如下代码:
void CMainFrame::OnMovie1()
{
// TODO: Add your mand handler code here
MessageBox(〃悟空你也太调皮了,我跟你说过叫你不要乱扔东西,你怎么又…〃;
〃月光宝盒〃);
}
(5 )在 MainFrm。cpp 文件中找到 CMainFrame::OnMovie2()函数,添加如下代码:
void CMainFrame::OnMovie2()
{
// TODO: Add your mand handler code here
MessageBox(〃 曾经有一份真诚的爱情摆在我的面前,但是我没有珍惜…〃;
〃仙履奇缘〃);
}
(6 )保存文件,编译并运行程序,关闭所有文档,依次选择“大话西游|仙履奇缘”可以
得到如图 3…15 所示的运行结果。
小说推荐
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 其他
- 最新章:第37章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 其他
- 最新章:第31章
- VB2008从入门到精通(PDF格式英文版)
- -Page 1(R)The eXperT’s Voice inBeginningVB 2008From Novice to ProfessionalChristian Gross-Page 2-Page 3-Beginning VB 2008From Novice to Professional■C
- 其他
- 最新章:第214章
- C语言设计
- 作者:谭浩强1 C 语言概述1.1 C语言的发展过程1.2 当代最优秀的程序设计语言1.3 C语言版本1.4 C语言的特点1.5 面向对象的程序设计语言1.6 C和C+1.7 简单的C程序介绍1.8 输入和输出函数1.9 C源程序的结构特点1.10书写程序时应遵循的规则1.11C语言的字符集1.12
- 文学名著
- 最新章:第45章
- 设计成婚:不入豪门
- 作者:海未央《设计成婚2:名门新娘》作品介绍《名门新娘》介绍:她是骆家收养的孤女,性格因为受他的影响,变得有些古灵精怪,也懂得是非之分!他说他的一切只为他而努力,可是为什么要拒绝自己呢?什么?没有满十八岁?那今天生日,够十八岁了吧?什么,还太小?太过分了,这不是耍着自己玩吗?嘿嘿,有个邪恶的老师,那
- 魔法玄幻
- 最新章:第196章
- 玄学,从入门到放弃
- 《玄学,从入门到放弃》作者:李传言文案:周诣一手拿着卜卦,一手拿着《演员的自我修养,叹息良久。他本是百年前观天占星的玄术师,谁知却一朝重生现代。他只想平淡地生活下去,可天不遂人愿,他注定将在这末法时代掀起波澜!成就一代影帝!谢千仇沉默地看着他…大师,你卦和书都拿倒了#玄学,从入门到放弃,入土,删库跑
- 魔法玄幻
- 最新章:第86章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章
- 要你言听计从
- 作者:决明第一章哈士奇,没有护卫看家的本领,对主人、客人甚至是闯空门的恶人都一样友善,咬着皮球跟小偷一块玩你丢我捡也不用太惊讶,时常被人认为忠诚度不足。贺世祺背靠在冰冷玻璃落地窗前,一整间屋子都是伸手不见五指的黑暗,也好,反正他现在什么也不需要看到,只要耳朵还有听觉就好,顺便听听贴在耳边的手机里还要
- 都市言情
- 最新章:第28章