实验四 菜单、工具栏

实验四 菜单、工具栏

ID:38699107

大小:253.50 KB

页数:7页

时间:2019-06-17

实验四 菜单、工具栏_第1页
实验四 菜单、工具栏_第2页
实验四 菜单、工具栏_第3页
实验四 菜单、工具栏_第4页
实验四 菜单、工具栏_第5页
资源描述:

《实验四 菜单、工具栏》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、菜单、工具栏实验报告2011年4月6日一、实验目的1、掌握菜单的实现机制和创建过程2、掌握普通下拉菜单和上下文菜单的创建3、掌握工具栏的创建和消息处理过程二、实验内容本节主要掌握菜单、工具栏的使用方法,内容包括菜单的创建和使用、工具栏的创建和使用。例1.要求创建一个应用程序,实现在客户区绘制椭圆和矩形的功能。为应用程序添加一个“图形”菜单项,该菜单项包含两个子菜单“椭圆”和“矩形”。步骤:(1)用AppWizard创建一个基于MFC的SDI应用程序,工程名为ex61。(2)在ResourceView页面中,双击Menu文件夹,可以看到一个ID为I

2、D_MAINFRAME的菜单,此菜单为应用程序的主菜单。双击ID_MAINFRAME菜单,进入菜单编辑器,在编辑框窗口中出现菜单栏。(3)菜单项的添加:1)“图形”菜单项的添加。在ID_MAINFRAME菜单的最右端有一个空的菜单项,双击该菜单项弹出该菜单项的属性对话框,在该对话框中,选定弹出(pop-up),表示本菜单项中包含弹出子菜单,在标明(caption)编辑框中输入该菜单项的标题“图形”,使该菜单项下产生一个空的子菜单项。2)添加“椭圆”和“矩形”子菜单项。双击“图形”菜单项下的空子菜单,其属性对话框中各项为:(4)增加“椭圆”和“矩形

3、”的消息处理……1)利用ClassWizard为ID_ELLIPSE在CEx61View类中添加消息映射,如下图。双击COMMAND弹出对话框,要求在该对话框中输入消息处理函数的名称,选择默认函数名,确定后,双击消息处理函数OnEllipse进行编辑(矩形同样进行编辑,消息处理函数为OnRectangle),代码如下:voidCEx61View::OnEllipse()//椭圆画图{//TODO:AddyourcommandhandlercodehereInvalidate();UpdateWindow();CDC*pDC=GetDC();pDC

4、->Ellipse(100,100,200,200);}voidCEx61View::OnRectangle()//矩形画图{//TODO:AddyourcommandhandlercodehereInvalidate();UpdateWindow();CDC*pDC=GetDC();pDC->Rectangle(100,100,200,200);}(1)给“椭圆”和“矩形”子菜单添加UPDATE_COMMAND_UI消息,并在消息处理函数中实现在选中的子菜单项前打钩。UPDATE_COMMAND_UI消息的添加和WM_COMMAND消息类似。在

5、上图中,在Messages中选择UPDATE_COMMAND_UI即可。消息处理函数为:VoidCE61View::OnUpdateEllipse(CCmdUI*pCmdUI){pCmdUI->SetCheck(flag==0);}VoidCE61View::OnUpdateRectangle(CCmdUI*pCmdUI){pCmdUI->SetCheck(flag==1);}例1.用上下文菜单实现例1的功能。创建上下文菜单的步骤如下:(1)创建一个新菜单资源。用AppWizard创建一个基于MFC的SDI应用程序,工程名为ex62。在工作区的R

6、esourceView选项卡中,右击Menu文件夹,在弹出菜单中选择插入菜单便可创建一个新的菜单资源,其ID为IDR_MENU1。右击IDR_MENU1,在弹出菜单中选择属性,修改其ID为IDR_POPMENU。双击IDR_POPMENU资源进入编辑对话框,对弹出式菜单进行编辑,方法见例1,完成后的菜单资源如图:(2)添加代码,实现鼠标右键单击时显示弹出式菜单。在查看菜单项中选择建立类向导来添加右键单击弹出式菜单WM_CONTEXTMENU及消息处理函数,这时MFC会发现创建了一个新资源,将询问是否创建一个新类,取消后,弹出下图对话框,选择ID为

7、CEx62View,Messages为WM_CONTEXTMENU,双击该消息或单击AddFunction按钮,将为该消息添加默认处理函数,单击EditCode按钮进入OnContextMenu()函数,对其进行编辑。在相应的消息处理函数中添加代码如下:voidCEx62View::OnContextMenu(CWnd*pWnd,CPointpoint){//TODO:AddyourmessagehandlercodehereCMenumenu;menu.LoadMenu(IDR_POPMENU);menu.GetSubMenu(0)->Trac

8、kPopupMenu(TPM_LEFTALIGN

9、TPM_LEFTBUTTON,point.x,point.y,AfxGetMainWn

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

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

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