MFC实验五 菜单工具栏和状态栏解读Word格式.docx
- 文档编号:14927976
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:20
- 大小:735.53KB
MFC实验五 菜单工具栏和状态栏解读Word格式.docx
《MFC实验五 菜单工具栏和状态栏解读Word格式.docx》由会员分享,可在线阅读,更多相关《MFC实验五 菜单工具栏和状态栏解读Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
在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
红色[&
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
设置图形为红色\n红色
绿色
设置图形为绿色\n绿色
蓝色
设置图形为蓝色\n蓝色
自定义
通过颜色对话框设置图形颜色\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_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数组修改为如下形式:
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函数中输出提示信息:
编译、链接和运行:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MFC实验五 菜单工具栏和状态栏解读 MFC 实验 菜单 工具栏 状态栏 解读