第6章-菜单工具栏和状态栏课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第6章-菜单工具栏和状态栏课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 菜单 工具栏 状态栏 课件
- 资源描述:
-
1、1第第6章菜单、工具栏和状态栏章菜单、工具栏和状态栏 6.1 菜单菜单 6.2 工具栏工具栏 6.3 状态栏状态栏 26.1菜单菜单(1 of 11)对于菜单的显示都遵循下列一些规则:对于菜单的显示都遵循下列一些规则:u若某菜单项标题后有若某菜单项标题后有“”,那么在,那么在点击某菜单项会弹出一对话框。点击某菜单项会弹出一对话框。u若某项菜单有子菜单,那么在该菜单若某项菜单有子菜单,那么在该菜单项文本后有项文本后有“”。u菜单项需要助记符,用括号将带下划菜单项需要助记符,用括号将带下划线的字母括起来。助记符与线的字母括起来。助记符与Alt构成构成一个组合键,当按住一个组合键,当按住“Alt”键
2、不放,键不放,再敲击该字母时,对应的菜单项就会再敲击该字母时,对应的菜单项就会被选中。被选中。u若某项菜单需要快捷键的支持,则一若某项菜单需要快捷键的支持,则一般将其列在相应菜单项文本之后。任般将其列在相应菜单项文本之后。任何时候按下快捷键,相应的菜单命令何时候按下快捷键,相应的菜单命令都会被执行。都会被执行。图图6.1 File菜单菜单 36.1菜单菜单(2 of 11)6.1.1 用编辑器设计菜单用编辑器设计菜单 编辑菜单编辑菜单 在菜单的空位置上双击鼠标左键,则出现它的属性对话在菜单的空位置上双击鼠标左键,则出现它的属性对话框,如图。框,如图。图图6.2 菜单编辑器菜单编辑器菜单的空位置
3、图图6.3 菜单属性对话框菜单属性对话框46.1菜单菜单(3 of 11)56.1菜单菜单(4 of 11)需要注意的是:需要注意的是:u当菜单项的属性中选中了当菜单项的属性中选中了Pop_up(该菜单包含子菜单该菜单包含子菜单)时,时,对话框中对话框中ID、Separator和和Prompt项无效。项无效。u增加新的菜单项后,用户可以用鼠标将菜单项拖到其他增加新的菜单项后,用户可以用鼠标将菜单项拖到其他位置,而当菜单项位置改变时,其属性并不改变。位置,而当菜单项位置改变时,其属性并不改变。菜单项被拖动的位置图图6.4 拖动菜单项拖动菜单项图图6.5 添加的菜单项添加的菜单项66.1菜单菜单(
4、5 of 11)菜单命令的消息映射菜单命令的消息映射 例例Ex_Mmenu“成绩输入成绩输入”菜单项的映射。菜单项的映射。(1)进入进入MFC ClassWizard对话框,切换到对话框,切换到Message Maps页面。页面。(2)从从“Class name”列表中选择列表中选择CMainFrame,在,在IDs列表中选择列表中选择ID_SCORE_IN,然后在,然后在Messages框中选择框中选择COMMAND消息,如图。消息,如图。图图6.6 消息的选择消息的选择76.1菜单菜单(6 of 11)(3)单击单击Add Function按钮或双击按钮或双击COMMAND消息,输入成员函
5、数的名消息,输入成员函数的名称。如图称。如图6.7所示。所示。(4)单击单击OK。选择新增加的成员函数,单击。选择新增加的成员函数,单击Edit Code按钮按钮(或直接在或直接在函数名双击鼠标左键函数名双击鼠标左键),就可以在此成员函数中添加一些代码。例如:,就可以在此成员函数中添加一些代码。例如:void CMainFrame:OnScoreIn()/TODO:Add your command handler code hereAfxMessageBox(现在就输入成绩吗?现在就输入成绩吗?);(5)编译并运行。在应用程序的顶层菜单上,单击编译并运行。在应用程序的顶层菜单上,单击“成绩输入
6、成绩输入”菜单项或菜单项或按按Alt+S组合键,如图组合键,如图6.8所示。所示。图图6.7 添加成员函数对话框添加成员函数对话框图图6.8 菜单命令执行的结果菜单命令执行的结果86.1菜单菜单(7 of 11)6.1.2 使用键盘快捷键使用键盘快捷键(1)先打开上例的项目工作区窗口中先打开上例的项目工作区窗口中Accelerator的资源项,双击的资源项,双击IDR_MAINFRAME,如图。,如图。图图6.9 示例示例Ex_Sdi的加速键资源的加速键资源最下端的空行96.1菜单菜单(8 of 11)(2)要建立一新的加速键,双击加速键列表的最下端的空行,如图要建立一新的加速键,双击加速键列
7、表的最下端的空行,如图6.10,其中可设置的属性如表,其中可设置的属性如表6.2。(3)在上述对话框中,选择在上述对话框中,选择ID_SCORE_IN作为要设定快捷键的作为要设定快捷键的ID号,号,单击单击Next Key Typed,按下,按下Ctrl+1作为此加速键的键值。作为此加速键的键值。图图6.10 “Accel Properities”对话框对话框106.1菜单菜单(9 of 11)6.1.3 使用快捷菜单使用快捷菜单右键菜单右键菜单用资源编辑器和用资源编辑器和MFC库的库的CMenu:TrackPopupMenu函数可以创建函数可以创建快捷菜单。快捷菜单。CMenu:TrackP
8、opupMenu函数原型如下:函数原型如下:BOOL TrackPopupMenu(UINT nFlags,int x,int y,CWnd*pWnd,LPCRECT lpRect=NULL);其中:其中:x和y表示菜单顶端(一般为左上角)的水平坐标和垂直坐标。pWnd表示弹出菜单的窗口。lpRect是一个RECT结构或CRect对象指针,表示一个矩形区域,不在该区域单击鼠标时,则弹出菜单消失;当lpRect为NULL时,若击在菜单外面,菜单立刻消失。116.1菜单菜单(10 of 11)例例Ex_Menu创建弹出菜单。创建弹出菜单。(1)选择选择“Insert”菜单菜单“Resource”命
9、令,为应用程序添加一个新的菜单命令,为应用程序添加一个新的菜单资源。资源。(2)用菜单编辑器,为该菜单资源中的顶层菜单的第一项加一任意标题用菜单编辑器,为该菜单资源中的顶层菜单的第一项加一任意标题(实际实际上该标题无任何作用上该标题无任何作用),在此菜单项下依次添加如下表所示的菜单项。,在此菜单项下依次添加如下表所示的菜单项。(3)将此菜单资源将此菜单资源ID号改为号改为IDR_MYFLOATMENU(默认的默认的ID号为号为 IDR_MENU1)。(4)按按Ctrl+W快捷键打开快捷键打开ClassWizard,将出现一对话框,询问是,将出现一对话框,询问是“选择一选择一个已存在的类个已存在
10、的类”,还是,还是“创建一个新类创建一个新类”。选择。选择“选择一个已存在的类选择一个已存在的类”项并选定项并选定CMainFrame类类。126.1菜单菜单(11 of 11)(5)在在CMainFrame类类中,选择上表中所列的菜单中,选择上表中所列的菜单ID,双击,双击COMMAND消息。消息。这里仅为菜单这里仅为菜单ID_MENU_SCOREIN映射映射COMMAND消息,添加代码:消息,添加代码:void CMainFrame:OnMenuScorein()AfxMessageBox(现在就输入成绩吗?现在就输入成绩吗?);(6)在在CMainFrame类类加入加入WM_CONTEX
11、TMENU消息处理函数,代码如下:消息处理函数,代码如下:void CMainFrame:OnContextMenu(CWnd*pWnd,CPoint point)CMenu menu;menu.LoadMenu(IDR_MYFLOATMENU);menu.GetSubMenu(0)-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);(7)运行并测试。在应用程序的窗口客户区中单击鼠标右键,弹出如图菜单。运行并测试。在应用程序的窗口客户区中单击鼠标右键,弹出如图菜单。“成绩打印成绩打印”菜单命令没有消息处理函数,
12、因此它是灰显的,用户不能使用菜单命令没有消息处理函数,因此它是灰显的,用户不能使用它们。若用户选中它们。若用户选中“成绩输入成绩输入”菜单命令,则会执行相应的代码。菜单命令,则会执行相应的代码。图图6.13 快捷菜单快捷菜单13第第6章菜单、工具栏和状态栏章菜单、工具栏和状态栏 6.1 菜单菜单 6.2 工具栏工具栏 6.3 状态栏状态栏 146.2工具栏工具栏(1 of 6)6.2.1 使用工具栏编辑器使用工具栏编辑器 例:例:选择选择“File”“Open Workspace”,创建单文档应用程序,创建单文档应用程序Ex_Sdi。在项目工作区窗口中选择。在项目工作区窗口中选择Resourc
13、eView标签,双击标签,双击“Toolbar”项中的项中的IDR_MAINFRAME,则工具栏编辑器出现在主,则工具栏编辑器出现在主界面的右边,如图。界面的右边,如图。图图6.14 工具栏编辑器窗口工具栏编辑器窗口空按钮空按钮156.2工具栏工具栏(2 of 6)可以对工具栏进行的操作:可以对工具栏进行的操作:(1)创建一个新的工具栏按钮创建一个新的工具栏按钮在新建的工具栏中,最右端总有一个空按钮,双击该按钮弹出其属性在新建的工具栏中,最右端总有一个空按钮,双击该按钮弹出其属性对话框,在对话框,在ID框中输入其标识符名称。单击该按钮,在编辑器的视窗框中输入其标识符名称。单击该按钮,在编辑器的
14、视窗内进行编辑,这个编辑就是绘制一个按钮位图。内进行编辑,这个编辑就是绘制一个按钮位图。(2)移动一个按钮移动一个按钮在工具栏中移动一个按钮,用鼠标左键点中它并拖动至相应位置即可。在工具栏中移动一个按钮,用鼠标左键点中它并拖动至相应位置即可。若在移动一个按钮的同时,按下若在移动一个按钮的同时,按下Ctrl键,则在新位置复制一个按钮。键,则在新位置复制一个按钮。(3)删除一个按钮删除一个按钮如果用户拖动它离开工具栏位置,则此按钮从工具栏中消失如果用户拖动它离开工具栏位置,则此按钮从工具栏中消失(被删除被删除)。但若选中按钮后,单击但若选中按钮后,单击Delete键并不能删除一个按钮,只是将按钮中
展开阅读全文