欢迎来到天天文库
浏览记录
ID:49376384
大小:816.00 KB
页数:62页
时间:2020-02-05
《chap5菜单、工具栏与状态栏.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章菜单、工具栏和状态栏5.1菜单5.2工具栏5.3状态栏5.1菜单菜单的显示规则:若单击菜单项后,将弹出一个对话框,那么在该菜单项文本后有“…”。若某菜单有子菜单,那么在该菜单项文本后有“”若菜单项需要助记符,则用括号将带下划线的字母括起来。助记符与Alt构成一个组合键。或在菜单打开时,直接按助记符键,对应的菜单项也会被选中。若某项菜单需要快捷键的支持,则一般将其列在相应菜单项文本之后。25.1菜单顶层菜单下拉菜单35.1.1用编辑器设计菜单1.编辑菜单子菜单的空位置保存可见按钮顶层菜单的空位置45.1.1
2、用编辑器设计菜单1.编辑菜单单击“测试”菜单项下方的空位置,在菜单项属性对话框中,输入标题“切换菜单(&D)”,在ID框输入该菜单项的资源标识符:ID_TEST_CHANGE。关闭菜单项属性对话框,将新添加的菜单项拖放到“查看”和“帮助”菜单项之间,结果如图所示。需要说明的是,菜单项位置改变后,其属性并没改变。52.菜单命令的消息映射(1)打开MFCClassWizard对话框,并自动切换到MessageMaps页面。从“Classname”列表中选择CMainFrame,在IDs列表中选择ID_TEST_CHA
3、NGE,然后在Messages框中选择COMMAND消息。5.1.1用编辑器设计菜单62.菜单命令的消息映射(2)单击[AddFunction]按钮或双击COMMAND消息,出现“AddMemberFunction”对话框以输入成员函数的名称。系统默认的函数名为OnTestChange,该函数是对菜单项ID_TEST_CHANGE(“测试”→“切换菜单”)的映射。5.1.1用编辑器设计菜单72.菜单命令的消息映射(3)单击[OK]按钮,在ClassWizard的“Memberfunctions”列表中将列出新增加
4、的成员函数。选择此函数,单击[EditCode]按钮(或直接在函数名双击鼠标),在此成员函数中添加下列代码:voidCMainFrame::OnTestChange(){//TODO:AddyourcommandhandlercodehereAfxMessageBox("现在就切换吗?");}5.1.1用编辑器设计菜单8(4)编译并运行。在应用程序的顶层菜单上,单击“测试”菜单项,然后将鼠标移动到弹出的子菜单项“切换菜单”上,则结果如图所示,此时状态栏上显示该菜单项的提示信息,该信息就是在前图的菜单项属性对话框“
5、提示”框中设置的内容。单击“切换菜单”,则弹出一个消息对话框,显示内容“现在就切换吗?”。5.1.1用编辑器设计菜单95.1.2使用键盘快捷键例:为前面菜单项ID_TEST_CHANGE定义键盘快捷键(1)展开项目工作区窗口中Accelerator的资源项,双击IDR_MAINFRAME,出现加速键资源列表。下端的空行105.1.2使用键盘快捷键(2)建立一个新的加速键时,只要双击加速键列表的最下端的空行,弹出如图所示的“AccelProperties”(加速键属性)对话框,其中可设置的属性如表所示115.1.2
6、使用键盘快捷键(3)在加速键属性对话框中,先选择在Ex_SDI应用程序菜单资源添加的“切换菜单”菜单项ID_TEST_CHANGE作为要联用的加速键的ID标识符,然后单击[下一键]按钮,并按下Ctrl+1作为此加速键的键值。此外,还需在相应的菜单项文本后面添加加速键内容。例如,可将ID_TEST_CHANGE菜单项的标题改成“切换菜单(&C)tCtrl+1”。(4)编译运行并测试。当程序运行后,按Ctrl+1键将执行相应的菜单命令。125.1.3菜单的编程控制CMenu类1.创建菜单BOOLCreateMenu
7、();//产生一个空菜单BOOLCreatePopupMenu();//产生一个空的弹出式子菜单2.装入菜单将菜单从资源装入应用程序中BOOLLoadMenu(LPCTSTRlpszResourceName);//lpszResourceName为菜单资源名称BOOLLoadMenu(UINTnIDResource);//nIDResource为菜单资源ID标识符。135.1.3菜单的编程控制3.添加菜单项AppendMenu函数:将菜单项添加在菜单的末尾处InsertMenu函数:在指定位置处插入菜单项,后面的
8、菜单项依次下移BOOLAppendMenu(UINTnFlags,UINTnIDNewItem=0,LPCTSTRlpszNewItem=NULL);//lpszNewItem为新菜单项的内容BOOLAppendMenu(UINTnFlags,UINTnIDNewItem,constCBitmap*pBmp);//pBmp用于菜单项的位图指针BOOLInsertMenu(
此文档下载收益归作者所有