菜单工具栏与状态栏.ppt

菜单工具栏与状态栏.ppt

ID:52393998

大小:481.01 KB

页数:44页

时间:2020-04-05

菜单工具栏与状态栏.ppt_第1页
菜单工具栏与状态栏.ppt_第2页
菜单工具栏与状态栏.ppt_第3页
菜单工具栏与状态栏.ppt_第4页
菜单工具栏与状态栏.ppt_第5页
资源描述:

《菜单工具栏与状态栏.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章菜单、工具栏与状态栏VisualC++程序设计与应用教程4.1菜单4.2工具栏4.3状态栏4.4应用实例24.1菜单4.1.1菜单的类型常见菜单有3种:主菜单、弹出菜单和快捷菜单。1.主菜单指出现在应用程序主窗口或最上层窗口的菜单。通常对应有一个弹出菜单作为它的子菜单。32.弹出菜单指选择主菜单或一个菜单项时弹出的子菜单。3.快捷菜单当右击某个界面对象时,通常会弹出快捷菜单,它出现在鼠标箭头的位置,快速展示当前对象可用的命令功能。4菜单设计一般需要经过下面两步:(1)使用菜单编辑器编辑菜单资源;(2)使用ClassWizard进行消息映

2、射,编辑成员函数,完成菜单所要实现的功能。54.1.2编辑菜单使用菜单编辑器来编辑菜单资源。双击ResourceView视图中的Menu菜单资源,打开菜单编辑器。61.插入新菜单项在当前空白菜单项位置插入选定窗口中的空白菜单项后按回车键(或双击空白菜单项),系统弹出菜单属性对话框。在某菜单项前插入选中该菜单项并按Ins键,再双击该空白菜单项进行编辑。72.属性对话框的设置用于输入菜单项的标识符(ID)、标题(Caption)和菜单项在状态栏上显示的提示(Prompt)信息等。菜单项的标识符(ID)菜单项在状态栏上显示的提示信息标题893.调整

3、菜单项位置选中某菜单项将其拖至适当位置。4.删除菜单项用鼠标单击菜单项或用上、下、左、右光标键选择菜单项,然后单击Cut按钮或按Del键删除。10【例4.1】编写一个单文档应用程序MyDraw,在菜单栏中增加一个“绘图”主菜单,并在其中添加“矩形”和“椭圆”两个菜单项。114.1.3建立消息映射在上例中仅添加了菜单,并没有实现菜单的功能,即没有对应的命令处理函数与菜单项对应,因此,添加的菜单项是灰色的,即处于当前不可用状态。添加新的菜单项后,还应该为菜单项指定一个处理函数,即利用ClassWizard类向导添加一个消息处理函数。12【例4.2

4、】为例4.1中增加的菜单项添加消息处理函数。134.1.4菜单的有效控制一般情况下,菜单项都不止一种状态。例如,在没有选择任何内容时,Edit菜单下的Copy、Cut等菜单项是无效的(灰色显示)。有时,我们还会看到,在菜单项旁边可能还会有检查标记,表示它是选中的还是不选中的。比如,在Word的视图菜单项下,当用户选用【网格线】或【标尺】时,相应菜单项前会出现一个“√”。MFC通过消息映射机制和CCmdUI类更新菜单项的显示。14在类向导ClassWizard的MessageMap标签中,如果选择一个菜单ID,在Messages列表框中就会出现

5、以下两项:COMMANDUPDATE_COMMAND_UI其中UPDATE_COMMAND_UI是更新命令用户接口消息,专门用于处理菜单项和工具条按钮的更新。15【例4.3】为例4.2的程序MyDraw添加更新用户界面的消息处理函数,使程序启动时菜单项【椭圆】处于不可用状态,当用户单击【矩形】菜单项后,在菜单项前显示“√”标记,并使【椭圆】菜单项变为可用。164.1.5快捷菜单为应用程序创建快捷菜单主要有以下两种方法。1.使用ComponentGallery创建快捷菜单ComponentGallery(组件画廊)是一个组件库,它保存着可以共享

6、或重用的代码。这些代码包括由VisualC++自带的组件和从用户工程中增加到Gallery中去的用户自定义组件。17【例4.4】为例4.3中的应用程序MyDraw增加一个快捷菜单。程序运行后,用户在视图窗口中右击,弹出一个快捷菜单,显示主菜单“绘图”下的所有菜单项。快捷菜单182.使用TrackPopupMenu()函数创建快捷菜单使用菜单资源编辑器和CMenu::TrackPopupMenu()函数来创建右键快捷菜单。CMenu::TrackPopupMenu函数的原型为:BOOLTrackPopupMenu(UINTnFlags,intx

7、,inty,CWnd*pWnd,LPCRECTlpRect=NULL);该函数的功能是显示一个右键快捷菜单。其中,nflags表示屏幕位置标志(见下表)。x、y分别表示菜单的水平坐标和顶端的垂直坐标;pWnd表示弹出菜单的窗口,包括全部的WM_COMMAND消息;lpRect表示一个矩形域,当单击这个矩形域时菜单不消失。19参数nflags的含义20【例4.5】使用TrackPopupMenu()函数创建例4.3中的快捷菜单。214.1.6创建动态菜单动态创建菜单分为以下3个步骤。(1)利用CreateMenu()函数创建一个空的弹出式菜单,

8、该函数的原型为:HMENUCreateMenu()该函数没有参数,它的返回值是一个菜单句柄。(2)调用AppendMenu()或InsertMenu()函数在菜单中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。