第6章 菜单工具栏与状态栏.ppt
《第6章 菜单工具栏与状态栏.ppt》由会员分享,可在线阅读,更多相关《第6章 菜单工具栏与状态栏.ppt(57页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 6 6 章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 6.1 6.1 菜单菜单 6.2 6.2 工具栏工具栏 6.3 6.3 状态栏状态栏 1Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 6.1 6.1 菜单菜单 6.1.1 6.1.1 菜单的类型菜单的类型 常见菜单有常见菜单有3 3种种:主菜单、弹出菜单和快捷菜单主菜单、弹出菜单和快捷菜单。1.1.主菜单主菜单 指指出出现现在在应应用用程程序序主主窗窗口口或或最最上上层层窗窗口口的的菜菜单单。通常对应有一个弹出菜单作为它的子菜单。通常对应有一个弹出菜单作为它的子菜单。2Visu
2、al C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 2.2.弹出菜单弹出菜单指指选择主菜单或一个菜单项时弹出的子菜单选择主菜单或一个菜单项时弹出的子菜单。3.3.快捷菜单快捷菜单 当当右右击击某某个个界界面面对对象象时时,通通常常会会弹弹出出快快捷捷菜菜单单,它它出出现现在在鼠鼠标标箭箭头头的的位位置置,快快速速展展示示当当前前对对象象可可用用的的命令功能命令功能。3Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 菜单设计一般需要经过下面两步菜单设计一般需要经过下面两步:(1)(1)使用菜单编辑器编
3、辑菜单资源使用菜单编辑器编辑菜单资源;(2)(2)使用使用ClassWizardClassWizard进行消息映射,编辑成员函进行消息映射,编辑成员函数,完成菜单所要实现的功能数,完成菜单所要实现的功能。4Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 6.1.2 编辑菜单编辑菜单 使使用用菜菜单单编编辑辑器器来来编编辑辑菜菜单单资资源源。双双击击ResourceViewResourceView视图中的视图中的MenuMenu菜单资源,打开菜单编辑器。菜单资源,打开菜单编辑器。5Visual C+程序设计31-Dec-22第第6 6章章 菜
4、单、工具栏与状态栏菜单、工具栏与状态栏 1.1.插入新菜单项插入新菜单项在当前空白菜单项位置插入在当前空白菜单项位置插入选选定定窗窗口口中中的的空空白白菜菜单单项项后后按按回回车车键键(或或双双击空白菜单项击空白菜单项),系统弹出菜单属性对话框。,系统弹出菜单属性对话框。在某菜单项前插入在某菜单项前插入选选中中该该菜菜单单项项并并按按InsIns键键,再再双双击击该该空空白白菜菜单项进行编辑。单项进行编辑。6Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 2.2.属性对话框的设置属性对话框的设置 用用于于输输入入菜菜单单项项的的标标识识符符
5、(ID)(ID)、标标题题(Caption)(Caption)和和菜菜单项在状态栏上显示的单项在状态栏上显示的提示提示(Prompt)(Prompt)信息等信息等。菜单项的标菜单项的标识符识符(ID)(ID)菜单项在状态栏上菜单项在状态栏上显示的提示信息显示的提示信息标题标题7Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 8Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 3.3.调整菜单项位置调整菜单项位置 选中某菜单项将其拖至适当位置。选中某菜单项将其拖至适当位置。4.4.删除菜单项
6、删除菜单项 用用鼠鼠标标单单击击菜菜单单项项或或用用上上、下下、左左、右右光光标标键键选择菜单项,然后单击选择菜单项,然后单击CutCut按钮或按按钮或按DelDel键删除。键删除。9Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 【例例6.1】编编写写一一个个单单文文档档应应用用程程序序MyDraw,在在菜菜单单栏栏中中增增加加一一个个“绘绘图图”主主菜菜单单,并并在在其其中中添添加加“矩矩形形”和和“椭圆椭圆”两两个菜个菜单项。单项。(1)利利用用MFCAppWizardexe向向导导生生成成一一个个项项目目名名为为MyDraw的单文档
7、应用程序的单文档应用程序。(2)增加增加“绘图绘图”主菜单。主菜单。打打开开ResourceView视视图图中中的的Menu文文件件夹夹,双双击击IDR_MAINFRAME打打开开菜菜单单编编辑辑器器。双双击击菜菜单单栏栏右右侧侧的的虚虚线线空空白白菜菜单单项项,弹弹出出菜菜单单项项属属性性对对话话框框,在在Caption栏中输入栏中输入“绘图绘图(&D)”。其他采用系统默认值。其他采用系统默认值。10Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 双击打开菜单编辑器双击打开菜单编辑器双击打开菜单项属性对话框双击打开菜单项属性对话框菜单项名
8、称,菜单项名称,&表示在表示在字母字母D下加下划线下加下划线11Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (3)为主菜单增加菜单项为主菜单增加菜单项右右击击“绘绘图图”菜菜单单项项下下的的虚虚线线空空白白菜菜单单项项,在在弹弹出出的的快快捷捷菜菜单单中中选选择择Properties,打打开开菜菜单单项项属属性性设设置置对对话话框框。在在ID栏栏中中输输入入ID_RECTANGLE,Caption栏栏中中输输入入“矩矩形形(&R)tCtrl+R”,Prompt栏栏中中输输入入“在在视视图图中中绘绘制制矩矩形形n矩矩形形”。用用同同样样的
9、的方方法法添添加加“椭椭圆圆”子子菜菜单单项项,它它的的ID、Caption和和Prompt分分别别为为ID_ELLIPSE、椭椭圆圆(&L)tCtrl+L、在在视视图图中中绘绘制制椭椭圆圆n椭椭圆圆,并并在在“矩形矩形”和和“椭圆椭圆”两个菜单项之间添加一条分隔线。两个菜单项之间添加一条分隔线。12Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 “矩形矩形”菜单的快捷键,此处仅起提示菜单的快捷键,此处仅起提示作用,要真正成为快捷键还需要使用快作用,要真正成为快捷键还需要使用快捷键编辑器进行设置捷键编辑器进行设置13Visual C+程序设
10、计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (4)为菜单项添加快捷键。为菜单项添加快捷键。打打开开ResourceView视视图图中中的的Accelerator文文件件夹夹,双双击击IDR_MAINFRAME打打开开快快捷捷键键编编辑辑器器。双双击击编编辑辑器器底底部部的的空空白白框框,打打开开AccelProperties对对话话框框,在在ID栏栏下下拉拉列列表表中中选选择择ID_RECTANGLE,在在Key编编辑辑框框中中输输入入R,右右边边单单选选按按钮钮接接受受默默认认值值,关关闭闭对对话话框框。用用同同样样的的方方法法为为“椭圆椭圆”菜单项定义快捷
11、键。如图所示,菜单项定义快捷键。如图所示,14Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 15Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (5)(5)编译、链接并运行程序。编译、链接并运行程序。菜单项为灰色菜单项为灰色不可用不可用16Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 6.1.3 建立消息映射建立消息映射 在在上上例例中中仅仅添添加加了了菜菜单单,并并没没有有实实现现菜菜单单的的功功能能,即即没没有有对对应应的的命
12、命令令处处理理函函数数与与菜菜单单项项对对应应,因因此此,添添加的菜单项是加的菜单项是灰色灰色的,即的,即处于当前不可用状态处于当前不可用状态。添添加加新新的的菜菜单单项项后后,还还应应该该为为菜菜单单项项指指定定一一个个处处理理函函数数,即即利利用用ClassWizardClassWizard类类向向导导添添加加一一个个消消息息处处理理函数。函数。17Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 【例例6.26.2】为例为例6.16.1中增加的菜单项添加消息处理函数。中增加的菜单项添加消息处理函数。(1)(1)打打开例开例6.16.1中
13、所创建的应用程序中所创建的应用程序MyDrawMyDraw。(2)(2)单单击击【View View|ClassWizardClassWizard】菜菜单单项项或或按按Ctrl+WCtrl+W键键启动启动ClassWizardClassWizard类向导类向导。(3)(3)为为“矩形矩形”及及“椭圆椭圆”菜单项添加消息处理函菜单项添加消息处理函数。数。在在ClassWizardClassWizard对对话话框框的的Class Class namename栏栏下下拉拉列列表表中中选选 择择 CMyDrawViewCMyDrawView,在在 Object Object IDsIDs栏栏 中中 选
14、选 择择ID_RECTANGLEID_RECTANGLE,在在MessagesMessages栏栏选选择择COMMANDCOMMAND,单单击击Add Add FunctionFunction按按钮钮,接接受受系系统统默默认认函函数数名名。单单击击Edit Edit CodeCode按钮,为消息处理函数添加如下代码按钮,为消息处理函数添加如下代码。18Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 void CMyDrawView:OnRectangle()/TODO:Add your command handler code hereCC
15、lientDC dc(this);dc.Rectangle(10,10,200,100);/绘绘制矩形制矩形用同用同样样的方法的方法为为“椭圆椭圆”菜菜单项单项添加消息添加消息处处理函数,并理函数,并编编写如下代写如下代码码。void CMyDrawView:OnEllipse()/TODO:Add your command handler code hereCClientDC dc(this);dc.Ellipse(250,100,450,250);19Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (4)编编译译、链链接接并并运运行行程
16、程序序,分分别别选选择择“矩矩形形”和和“椭圆椭圆”菜单项,结果如图所示菜单项,结果如图所示。20Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 6.1.4 快捷菜单快捷菜单 为应用程序创建快捷菜单主要有以下两种方法。为应用程序创建快捷菜单主要有以下两种方法。1.1.使用使用Component GalleryComponent Gallery创建快捷菜单创建快捷菜单 Component Component Gallery(Gallery(组组件件画画廊廊)是是一一个个组组件件库库,它它保保存存着着可可以以共共享享或或重重用用的的代代码码。这
17、这些些代代码码包包括括由由Visual Visual C+C+自自带带的的组组件件和和从从用用户户工工程程中中增增加加到到GalleryGallery中中去去的的用用户自定义组件。户自定义组件。21Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 【例例6.3】为为例例6.2中中的的应应用用程程序序MyDraw增增加加一一个个快快捷捷菜菜单单。程程序序运运行行后后,用用户户在在视视图图窗窗口口中中右右击击,弹弹出出一一个个快捷菜单,显示主菜单快捷菜单,显示主菜单“绘图绘图”下的所有菜单项。下的所有菜单项。快捷菜单快捷菜单22Visual C+
18、程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (1)(1)打开例打开例6 6.2 2中的项目中的项目MyDrawMyDraw。(2)(2)选选择择【Project|Add Project|Add To To ProjectProject】菜菜单单项项,单单击击【ComponentsComponents and and ControlsControls】子子菜菜单单项项,弹弹出出ComponentsComponents and Controls and Controls GalleryGallery对话框,如图所示对话框,如图所示。23Visual C+程序
19、设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 双击打开对话框中的双击打开对话框中的VisualC+Components文件文件夹,如图所示夹,如图所示。24Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (3)(3)选选择择对对话话框框列列表表中中的的Pop-up Pop-up MenuMenu项项,单单击击InsertInsert按按钮钮,在在弹弹出出的的提提示示对对话话框框中中单单击击OKOK按按钮钮,弹弹出出Pop-up Pop-up MenuMenu对话框,如图所示对话框,如图所示。在在Pop-up
20、 Pop-up MenuMenu对对话话框框的的Add Add pop-up pop-up menu menu toto:下下拉拉列列表表中中选选择择CMyDrawViewCMyDrawView,即即将将创创建建的的快快捷捷菜菜单单与与视视图图类类相相关关联联。接接受受默默认认的的菜菜单单IDID值值。单单击击OKOK按按钮钮,插插入入快快捷捷菜单菜单。25Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (4)编辑快捷菜单编辑快捷菜单。展展开开ResourceView视视图图中中的的Menu文文件件夹夹,双双击击新新的的菜菜单单资资源源CG
21、_IDR_POPUP_MY_DRAW_VIEW,打打开开菜菜单资源编辑器,删除菜单单资源编辑器,删除菜单POPUP下的默认菜单项下的默认菜单项。26Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 27Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 打打开开IDR_MAINFRAME菜菜单单资资源源,将将主主菜菜单单“绘绘图图”的的所所有有下下拉拉菜菜单单项项复复制制到到剪剪贴贴板板上上。返返回回到到新新菜菜单单资资源源编编辑辑器器,将将复复制制的的内内容容粘粘贴贴到到新新的的快快捷捷菜菜
22、单单上上。这这样样快捷菜单就具有了与快捷菜单就具有了与“绘图绘图”主菜单完全相同的功能。主菜单完全相同的功能。28Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 主菜单“绘图”的所有子菜单29Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏 (5)(5)为快捷菜单连接一个类。为快捷菜单连接一个类。将将鼠鼠标标移移到到新新的的快快捷捷菜菜单单上上,右右击击选选择择ClassWizardClassWizard菜菜单单项项,打打开开ClassWizardClassWizard窗窗口口,并并弹弹出
23、出Adding Adding a a ClassClass对话框,如下图所示。对话框,如下图所示。选选择择Select Select an an existing existing classclass项项,单单击击OKOK按按钮钮,在在弹弹出出的的Select Select ClassClass对对 话话 框框 类类列列 表表 中中 选选 择择CMyDrawViewCMyDrawView,单单击击SelectSelect按钮。按钮。(6)(6)编译、链接并运行程序。编译、链接并运行程序。30Visual C+程序设计31-Dec-22第第6 6章章 菜单、工具栏与状态栏菜单、工具栏与状态栏
24、2.2.使用使用TrackPopupMenuTrackPopupMenu()()函数创建快捷菜单函数创建快捷菜单 使使用用菜菜单单资资源源编编辑辑器器和和CMenu:TrackPopupMenuCMenu:TrackPopupMenu()函函数来创建右键快捷菜单。数来创建右键快捷菜单。CMenu:TrackPopupMenuCMenu:TrackPopupMenu函数的原型为:函数的原型为:BOOL TrackPopupMenu(UINT nFlags,int x,int y,CWnd*pWnd,LPCRECT lpRect=NULL);该该函函数数的的功功能能是是显显示示一一个个右右键键快快
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 菜单工具栏与状态栏 菜单 工具栏 状态栏
限制150内