第6章-菜单工具栏和状态栏课件.ppt
《第6章-菜单工具栏和状态栏课件.ppt》由会员分享,可在线阅读,更多相关《第6章-菜单工具栏和状态栏课件.ppt(32页珍藏版)》请在三一办公上搜索。
1、1,第6章菜单、工具栏和状态栏,6.1 菜单 6.2 工具栏 6.3 状态栏,2,6.1菜单(1 of 11),对于菜单的显示都遵循下列一些规则:若某菜单项标题后有“”,那么在点击某菜单项会弹出一对话框。若某项菜单有子菜单,那么在该菜单项文本后有“”。菜单项需要助记符,用括号将带下划线的字母括起来。助记符与Alt构成一个组合键,当按住“Alt”键不放,再敲击该字母时,对应的菜单项就会被选中。若某项菜单需要快捷键的支持,则一般将其列在相应菜单项文本之后。任何时候按下快捷键,相应的菜单命令都会被执行。,图6.1 File菜单,3,6.1菜单(2 of 11),6.1.1 用编辑器设计菜单 编辑菜单
2、 在菜单的空位置上双击鼠标左键,则出现它的属性对话框,如图。,图6.3 菜单属性对话框,4,6.1菜单(3 of 11),5,6.1菜单(4 of 11),需要注意的是:当菜单项的属性中选中了Pop_up(该菜单包含子菜单)时,对话框中ID、Separator和Prompt项无效。增加新的菜单项后,用户可以用鼠标将菜单项拖到其他位置,而当菜单项位置改变时,其属性并不改变。,图6.5 添加的菜单项,6,6.1菜单(5 of 11),菜单命令的消息映射 例Ex_Mmenu“成绩输入”菜单项的映射。(1)进入MFC ClassWizard对话框,切换到Message Maps页面。(2)从“Clas
3、s name”列表中选择CMainFrame,在IDs列表中选择ID_SCORE_IN,然后在Messages框中选择COMMAND消息,如图。,图6.6 消息的选择,7,6.1菜单(6 of 11),(3)单击Add Function按钮或双击COMMAND消息,输入成员函数的名称。如图6.7所示。(4)单击OK。选择新增加的成员函数,单击Edit Code按钮(或直接在函数名双击鼠标左键),就可以在此成员函数中添加一些代码。例如:void CMainFrame:OnScoreIn()/TODO:Add your command handler code hereAfxMessageBox(
4、现在就输入成绩吗?);(5)编译并运行。在应用程序的顶层菜单上,单击“成绩输入”菜单项或按Alt+S组合键,如图6.8所示。,图6.7 添加成员函数对话框,图6.8 菜单命令执行的结果,8,6.1菜单(7 of 11),6.1.2 使用键盘快捷键(1)先打开上例的项目工作区窗口中Accelerator的资源项,双击IDR_MAINFRAME,如图。,9,6.1菜单(8 of 11),(2)要建立一新的加速键,双击加速键列表的最下端的空行,如图6.10,其中可设置的属性如表6.2。(3)在上述对话框中,选择ID_SCORE_IN作为要设定快捷键的ID号,单击Next Key Typed,按下Ct
5、rl+1作为此加速键的键值。,图6.10“Accel Properities”对话框,10,6.1菜单(9 of 11),6.1.3 使用快捷菜单右键菜单用资源编辑器和MFC库的CMenu:TrackPopupMenu函数可以创建快捷菜单。CMenu:TrackPopupMenu函数原型如下:BOOL TrackPopupMenu(UINT nFlags,int x,int y,CWnd*pWnd,LPCRECT lpRect=NULL);其中:x和y表示菜单顶端(一般为左上角)的水平坐标和垂直坐标。pWnd表示弹出菜单的窗口。lpRect是一个RECT结构或CRect对象指针,表示一个矩形区
6、域,不在该区域单击鼠标时,则弹出菜单消失;当lpRect为NULL时,若击在菜单外面,菜单立刻消失。,11,6.1菜单(10 of 11),例Ex_Menu创建弹出菜单。(1)选择“Insert”菜单“Resource”命令,为应用程序添加一个新的菜单资源。(2)用菜单编辑器,为该菜单资源中的顶层菜单的第一项加一任意标题(实际上该标题无任何作用),在此菜单项下依次添加如下表所示的菜单项。(3)将此菜单资源ID号改为IDR_MYFLOATMENU(默认的ID号为 IDR_MENU1)。(4)按Ctrl+W快捷键打开ClassWizard,将出现一对话框,询问是“选择一个已存在的类”,还是“创建一
7、个新类”。选择“选择一个已存在的类”项并选定CMainFrame类。,12,6.1菜单(11 of 11),(5)在CMainFrame类中,选择上表中所列的菜单ID,双击COMMAND消息。这里仅为菜单ID_MENU_SCOREIN映射COMMAND消息,添加代码:void CMainFrame:OnMenuScorein()AfxMessageBox(现在就输入成绩吗?);(6)在CMainFrame类加入WM_CONTEXTMENU消息处理函数,代码如下:void CMainFrame:OnContextMenu(CWnd*pWnd,CPoint point)CMenu menu;men
8、u.LoadMenu(IDR_MYFLOATMENU);menu.GetSubMenu(0)-TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);(7)运行并测试。在应用程序的窗口客户区中单击鼠标右键,弹出如图菜单。“成绩打印”菜单命令没有消息处理函数,因此它是灰显的,用户不能使用它们。若用户选中“成绩输入”菜单命令,则会执行相应的代码。,图6.13 快捷菜单,13,第6章菜单、工具栏和状态栏,6.1 菜单 6.2 工具栏 6.3 状态栏,14,6.2工具栏(1 of 6),6.2.1 使用工具栏编辑器 例:选择
9、“File”“Open Workspace”,创建单文档应用程序Ex_Sdi。在项目工作区窗口中选择ResourceView标签,双击“Toolbar”项中的IDR_MAINFRAME,则工具栏编辑器出现在主界面的右边,如图。,15,6.2工具栏(2 of 6),可以对工具栏进行的操作:(1)创建一个新的工具栏按钮在新建的工具栏中,最右端总有一个空按钮,双击该按钮弹出其属性对话框,在ID框中输入其标识符名称。单击该按钮,在编辑器的视窗内进行编辑,这个编辑就是绘制一个按钮位图。(2)移动一个按钮在工具栏中移动一个按钮,用鼠标左键点中它并拖动至相应位置即可。若在移动一个按钮的同时,按下Ctrl键,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 菜单 工具栏 状态栏 课件

链接地址:https://www.31ppt.com/p-4095883.html