友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

VC语言6.0程序设计从入门到精通-第24章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




令。例如 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 所示的运行结果。  



                                 
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!