MFC实验五 菜单工具栏和状态栏解读.docx

上传人:b****3 文档编号:2009098 上传时间:2022-10-26 格式:DOCX 页数:20 大小:735.53KB
下载 相关 举报
MFC实验五 菜单工具栏和状态栏解读.docx_第1页
第1页 / 共20页
MFC实验五 菜单工具栏和状态栏解读.docx_第2页
第2页 / 共20页
MFC实验五 菜单工具栏和状态栏解读.docx_第3页
第3页 / 共20页
MFC实验五 菜单工具栏和状态栏解读.docx_第4页
第4页 / 共20页
MFC实验五 菜单工具栏和状态栏解读.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MFC实验五 菜单工具栏和状态栏解读.docx

《MFC实验五 菜单工具栏和状态栏解读.docx》由会员分享,可在线阅读,更多相关《MFC实验五 菜单工具栏和状态栏解读.docx(20页珍藏版)》请在冰豆网上搜索。

MFC实验五 菜单工具栏和状态栏解读.docx

MFC实验五菜单工具栏和状态栏解读

菜单、工具栏和状态栏

实验步骤:

01.利用MFCAppWizard[exe]创建SDI应用程序,项目名为wx203_1。

02.单击项目工作区窗口下的ResourseView标签,打开资源列表。

展开Menu,双击Menu下的IDR_MAINFRAME即可打开菜单编辑器,如图所示。

03.为程序添加顶层菜单项。

双击菜单编辑器中具有虚线的空白框,打开菜单属性对话框,如图所示。

在Caption中输入菜单项标题“画图[&D]”。

04.为顶层菜单添加下拉菜单。

在菜单编辑器中单击“画图[&D]”,双击下方的新菜单项框,弹出菜单属性对话框。

在ID框中输入ID_DRAW_ELLIPSE,在Caption框中输入菜单项标题“椭圆[&E]\tCtrl+E”。

在Prompt框中输入次菜单的提示信息“在视图窗口画一个椭圆\n画椭圆”。

05.重复第03、04步,设计的菜单如图所示。

各菜单项的ID值如表所示:

菜单ID

各菜单项的ID值

ID_DRAW_ELLIPSE

椭圆[&E]\tCtrl+E

ID_DRAW_TRIANGLE

三角形[&T]

ID_DRAW_RECTANGLE

矩形[&R]

ID_COLOR_RED

红色[&R]

ID_COLOR_GREEN

绿色[&G]

ID_COLOR_BLUE

蓝色[&B]

ID_COLOR_CUSTOM

自定义...

06.添加消息处理函数。

在视图类CWx203_1View的定义中添加如下的数据成员:

在视图类CWx203_1View的构造函数中对数据成员进行初始化:

按下Ctrl+W打开ClassWizard对话框,选中MessageMaps标签,在Classname中选择类名CWx203_1View,在ObjectsIds下选择ID_DRAW_ELLIPSE,在Messages框中选择COMMAND,单击AddFunction为椭圆菜单添加消息处理函数,单击EditCode按钮打开代码编辑窗口,编辑消息处理函数:

同样为其它菜单添加WM_COMMAND消息处理函数如下:

编辑视图类OnDraw函数,在其中添加如下代码:

编译、链接和运行程序,如下图所示:

07.为“画图”下拉菜单添加用户界面更新处理函数。

在Messages列表框中选择UPDATE_COMMAND_UI。

用户界面更新处理函数如下:

08.单击项目工作窗口下的ResourceView标签,打开资源列表。

展开Accelerator,双击IDR_MAINFRAME,打开快捷键编辑器。

双击空白处,选中“椭圆”的ID值为ID_DRAW_ELLIPSE,在Key中输入E,在Modifiers中选中Ctrl,则椭圆的快捷键为Ctrl+E。

09.添加“颜色”的快捷菜单。

在视图类中添加消息WM_CONTEXTMENU的处理函数,在函数中添加如下代码:

运行时,当在视图窗口中右击鼠标时,弹出快捷菜单,如图所示:

10.通过编程增加两个菜单“缩放”和“修改菜单”。

单击项目工作窗口下的FileView标签,展开SourceFiles,双击Resource.h打开资源头文件,在其中添加如下语句:

创建两个子菜单,并将其添加到顶层菜单中。

在CmainFrame类的OnCreate成员函数中添加如下代码:

为子菜单项添加命令处理函数。

对于通过编程创建的菜单项,只能手工添加消息处理函数。

打开CWx203_1View.h,在其中找到DECLARE_MESSAGE_MAP,在DECLARE_MESSAGE_MAP之上、注释//}}AFX_MSG之下添加消息处理函数模型:

再打开CWx203_1View.cpp文件,在BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之间添加消息映射项。

在视图类的实现文件CWx203_1View.cpp中添加消息处理函数的函数体如下:

修改视图类OnDraw以适应菜单的变化。

在CWx203_1View类的定义中增加一个int数据成员m_nFlags,用于记录执行创建菜单“缩放”的情况,并在构造函数黄总将其初始化为0。

修改OnDraw,增加如下代码:

编译、链接和运行程序,结果如下:

11.创建一个英文的菜单资源,并允许在中英文之间进行切换。

在项目工作窗口选中ResourceView标签,打开资源菜单,增加顶层菜单命令“英文”,并取消Pop-up属性,指定其ID值为ID_ENGLISH,Caption为英文。

单击项目工作窗的ResourceView标签,在窗口中右击Menu,选择InsertMenu命令,插入新的菜单资源。

右击插入的资源ID,选择Properties命令,ID修改为IDR_ENGLISH。

添加如下图所示的菜单,为了与中文菜单共用相同的菜单命令处理函数,各对应菜单的ID应与IDR_MAINFRAME中的菜单ID相同。

取消菜单明林CHINESE的Pop-up属性,ID值为ID_CHINESE。

在主框架窗口类CMainFrame中为“英文”“CHINESE”添加命令消息处理函数:

编译、链接和运行程序,执行“英文”命令式切换到如下:

12.创建一个新的工具栏,用于执行“颜色”菜单中的命令。

单击工作窗口的ResourceView标签,插入一个新的工具栏资源,ID为IDR_COLORS,添加如图四个按钮,并按表设置属性。

按钮

大小(宽,高)

ID

Prompt

红色

16,15

ID_COLOR_RED

设置图形为红色\n红色

绿色

16,15

ID_COLOR_GREEN

设置图形为绿色\n绿色

蓝色

16,15

ID_COLOR_BLUE

设置图形为蓝色\n蓝色

自定义

16,15

ID_COLOR_CUSTOM

通过颜色对话框设置图形颜色\n自定义

在框架窗口类CMainFrame中添加CToolBar类的数据成员:

在CMainFrame:

:

OnCreate中添加代码:

13.显示或隐藏颜色设置工具栏。

在“查看”菜单下添加”颜色工具栏“菜单项,ID为

ID_VIEW_COLORBAR。

为”颜色工具栏“添加命令消息处理函数和用户界面更新命令消息处理函数:

编译、链接和运行程序。

14.给按颜色钮添加文字。

首先将按钮位图的大小调整为40个像素宽、19个像素高,然后在CMainFrame:

:

OnCreate函数的语句m_colorToolBar.LoadToolBar(IDR_COLORS);后添加如下代码:

生成的工具栏如图所示:

15.在工具栏添加一个组合框,用于设置视图窗口中文本显示的字体。

双击Toolbar下的IDR_MAINFRAME工具栏资源打开工具栏,删除“打印”“关于”两个按钮,然后添加如图所示的4个按钮并设置属性。

按钮

ID

Prompt

加粗

ID_BOLD

\n加粗

倾斜

ID_ITALIC

\n倾斜

下划线

ID_UNDERLINE

\n下划线

预留位置

缺省

在视图类CWx203_1View的头文件中增加如下文本属性的数据成员:

然后在视图类CWx203_1View的构造函数中初始化新增的数据成员:

在编辑类视图CWx203_1View的OnDraw成员函数,创建字体并选入设备环境,在视图窗口的底部显示文本:

为工具栏按钮添加命令消息处理函数和用户界面更新命令处理函数:

在工具栏的预留位置添加组合框,首先在CMainFrame的头文件中增加CcomboBox类的对象函数:

再执行View-ResourceSymbols命令,在弹出的对话框中单击New按钮,添加名称为IDC_COMBOBOX的ID标识,取缺省值。

编辑CMainFrame类的OnCreate函数,在其中增加创建组合框控件的代码:

在CWx203_1View中添加组合框的CBN_SELCHANGE的消息处理函数。

对于通过代码创建的控件,只能通过手工方式添加。

在视图类的头文件的DECLARE_MESSAGE_MAP()的上面增加消息处理函数OnSelChangeCombo原型:

在视图类的实现文件BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之间添加如下消息映射:

最后在视图类CWx203_1View的实现文件中编辑新增的组合框消息处理函数:

在CWx203_1View的实现文件的开始处包含主框架窗口类CMainFrame的头文件:

编译、链接和运行程序:

16.打开字符串表,在其中添加下表所示的三个字符串。

字符串ID

Caption

说明

ID_INDICATOR_TIME

HH:

MM:

SS

用于定义显示时间的窗格

ID_INDICATOR_LEFT

左键

用于定义显示鼠标左键状态的窗格

ID_INDICATOR_RIGHT

右键

用于定义显示鼠标右键状态的窗格

在MainFrame.cpp中,将其中的indicators数组修改为如下形式:

在CMainFrame:

:

OnCreate函数中添加如下语句:

此语句用于设置一个定时器,其ID值为150,定时器每隔200ms发送一个WM_TIMER消息。

在CMainFrame添加WM_TIMER消息处理函数,此函数每隔200ms执行一次,并利用SetPaneText在窗格中显示时间。

在MainFrm.h头文件中的DECLARE_MESSAGE_MAP()前添加函数原型:

在MainFrm.cpp实现文件中的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之间添加消息映射:

接着添加消息处理函数的定义:

在视图类CWx203_1中添加WM_MOUSEMOVE消息处理函数,在其中设置第二个窗格的文本,显示鼠标坐标。

由于缺省时m_wndStatusBar的访问权限在CMainFrame类中定义成protected,因此还需将其访问权限更改为public:

在视图类CWx203_1View的OnDraw函数中输出提示信息:

编译、链接和运行:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1