文档介绍:实验二、Windows菜单、工具条消息编程
实验目的:
了解windows编程的消息映射机制。
掌握VC资源编辑器的使用。
掌握建立菜单和工具条的方法,并能处理菜单与工具条及鼠标消息。
实验要求:
建立一个windows SDI(单文档)应用程序,并编辑建立菜单和工具条资源,对菜单和工具条的命令消息进行处理,并尝试右键菜单的添加。程序在窗口中显示一行文字“Hi, e to Windows MFC Programming Word !”,并能响应“显示控制”菜单中的关于文字显示控制的子菜单消息。另外通过鼠标消息的响应实现对文字显示在窗口中的位置交互控制。注意在About对话框中加上程序作者信息。
实验指导:
在VC++。
选择文件菜单中的new,然后在projects选项下选择MFC AppWizard(exe)项目,如下图,设定好文件路径和工程名称,在下面画面中选择生成一个SDI应用程序,点击完成。
编译工程文件,观察程序执行效果,并注意分析程序代码中的消息映射部分。在View类的已默认生成的函数OnPreparePrinting()中设置如下图所示断点,按F5启动调试工具,执行文件菜单下的打印项,程序会在断点处暂停,选择进入函数(F11)然后进行逐步调试(F10)。跟踪观察MFC程序执行中消息的处理路径和函数调用,理解课堂所讲内容。通过shift+F5中止调试。
下面来给在窗口中显示文字和控制显示添加必要的数据项。为了能够改变窗口中显示文字的颜色和位置,必须有相应的数据类型保存这些设置,我们将数据加在View类中,:
头文件(.h)中所加内容:
class *View : public CView
{
…
// Attributes
public:
…
CString m_strHello; //显示文字内容
int m_nSelColorIndex; //所选文字颜色在颜色数组中的位置索引(0-3)
COLORREF m_nColors[4]; //文字颜色数组
CPoint m_ptStrDisplay; //文字在窗口中的显示位置
BOOL m_bVisuable; //文字是否显示的控制
…
}
源文件(.cpp)中所加内容:
构造函数中添加内容:
*View::*View()
{
// TODO: add construction code here
//变量的赋值与初始化
m_strHello = "Hi, e to Windows MFC Programming World !";
m_nSelColorIndex = 0;
m_colors[0] = RGB(0,0,0);
m_colors[1] = RGB(255,0,0);
m_colors[2] = RGB(0,255,0);
m_colors[3] = RGB(0,0,255);
= 150;
= 100;
m_bVisuable = FALSE;
}
OnDraW()函数中添加显示文字代码:
void *View::