Visual C .NET编程讲座之四(2)
来源:百度文库 编辑:神马文学网 时间:2024/04/29 13:53:37
(7) 重复上述步骤,在"格式"菜单下再添加一个菜单项"文本颜色(&C)",ID为ID_FORMAT_TXTCOLOR,结果如图3所示。
图3 添加的菜单
(8) 单击"格式"菜单不松开,然后将其拖放到"视图"和"帮助"之间。
2. 菜单的命令映射
此时运行程序,则"格式"菜单下的命令都是"灰显"(即显示的颜色是灰色的)的,我们无法选择相应的菜单命令,这是因为我们还没有对菜单的命令消息进行映射。下面就来进行映射,由于我们添加的这些菜单命令是想更改变文本内容显示的字体,因此我们将菜单命令的映射添加到视图类CViewerView中,如下面的过程:
(1) 将解决方案资源管理器切换到"类视图",展开节点,选定"CViewerView",在其属性窗口中,单击"事件"按钮,结果如图4所示。
图4 事件映射
(2) 找到前面添加的菜单项ID_FORMAT_TXTFONT,单击该ID前面的"+",展开后出现可以映射的消息,由于菜单消息是命令消息,因为我们在COMMAND消息框的右侧,单击后选择"<添加>OnFormatTxtfont",如图4所示。这样相应的映射就被添加到CViewerView类中,此时文档窗口中自动定位到该函数的实现代码处。
图5 映射COMMAND消息
(3) 重复上一步为菜单项ID_FORMAT_TXTCOLOR添加COMMAND消息映射。
注意:同一命令消息的响应是根据对象的级别来决定的,对于单文档应用程序来说,各对象的级别从高到低依次为视图类(文档窗口)、文档类、主框架窗口类、应用程序类。
3. 完善"格式"菜单代码
(1) 为CViewerView类添加两个成员变量(添加成员变量的方法上一讲已讨论过),一个是LOGFONT类型的m_lfTextFont,另一个是COLORREF类型的m_crTxtColor。LOGFONT是逻辑字体类型,所谓"逻辑字体",它是应用程序对于理想字体的一种描述方式。在使用逻辑字体绘制文字时,系统会采用一种特定的算法把逻辑字体映射为最匹配的物理字体(实际安装在操作系统中的字体)。而COLORREF是专门用来定义RGB颜色的数据类型,RGB颜色是通过红(R)、绿(G)、蓝(B)三种基色分量的不同值混合而成的。
(2) 在构造函数CViewerView::CViewerView()中添加上述两个成员变量的初始化代码,如图5所示。
图6 在CViewerView类构造函数中添加的代码
(3) 在CViewerView::OnFormatTxtfont()函数中添加如图6所示的代码。
图7 OnFormatTxtfont()函数代码
CFontDialog类为我们提供了字体及其文本颜色选择的通用对话框,在构造对象中指定m_lfTextFont指针,其目的是用来设置对话框显示的逻辑字体,这样当下一次显示字体对话框时,就会显示当前的字体特性。
(4) 在CViewerView::OnFormatTxtcolor()函数中添加如图7所示的代码。
图8 OnFormatTxtcolor()函数代码
CColorDialog类封装了通用颜色对话框的全部操作。在定义对话框对象时,可以指定默认选定的颜色值,若不指定,则默认颜色值为RGB(0,0,0)(黑色)。
(5) 修改CViewerView::OnDraw()函数代码,如图8所示的加框部分。
图9 修改后的OnDraw()函数代码
(6) 运行程序,打开当前目录中的ReadMe.txt文档,打开"格式"菜单,选中相应的菜单命令,改变其字体和颜色。图9是其中的一个结果。
图10 运行后的程序结果
图3 添加的菜单
(8) 单击"格式"菜单不松开,然后将其拖放到"视图"和"帮助"之间。
2. 菜单的命令映射
此时运行程序,则"格式"菜单下的命令都是"灰显"(即显示的颜色是灰色的)的,我们无法选择相应的菜单命令,这是因为我们还没有对菜单的命令消息进行映射。下面就来进行映射,由于我们添加的这些菜单命令是想更改变文本内容显示的字体,因此我们将菜单命令的映射添加到视图类CViewerView中,如下面的过程:
(1) 将解决方案资源管理器切换到"类视图",展开节点,选定"CViewerView",在其属性窗口中,单击"事件"按钮,结果如图4所示。
图4 事件映射
(2) 找到前面添加的菜单项ID_FORMAT_TXTFONT,单击该ID前面的"+",展开后出现可以映射的消息,由于菜单消息是命令消息,因为我们在COMMAND消息框的右侧,单击后选择"<添加>OnFormatTxtfont",如图4所示。这样相应的映射就被添加到CViewerView类中,此时文档窗口中自动定位到该函数的实现代码处。
图5 映射COMMAND消息
(3) 重复上一步为菜单项ID_FORMAT_TXTCOLOR添加COMMAND消息映射。
注意:同一命令消息的响应是根据对象的级别来决定的,对于单文档应用程序来说,各对象的级别从高到低依次为视图类(文档窗口)、文档类、主框架窗口类、应用程序类。
3. 完善"格式"菜单代码
(1) 为CViewerView类添加两个成员变量(添加成员变量的方法上一讲已讨论过),一个是LOGFONT类型的m_lfTextFont,另一个是COLORREF类型的m_crTxtColor。LOGFONT是逻辑字体类型,所谓"逻辑字体",它是应用程序对于理想字体的一种描述方式。在使用逻辑字体绘制文字时,系统会采用一种特定的算法把逻辑字体映射为最匹配的物理字体(实际安装在操作系统中的字体)。而COLORREF是专门用来定义RGB颜色的数据类型,RGB颜色是通过红(R)、绿(G)、蓝(B)三种基色分量的不同值混合而成的。
(2) 在构造函数CViewerView::CViewerView()中添加上述两个成员变量的初始化代码,如图5所示。
图6 在CViewerView类构造函数中添加的代码
(3) 在CViewerView::OnFormatTxtfont()函数中添加如图6所示的代码。
图7 OnFormatTxtfont()函数代码
CFontDialog类为我们提供了字体及其文本颜色选择的通用对话框,在构造对象中指定m_lfTextFont指针,其目的是用来设置对话框显示的逻辑字体,这样当下一次显示字体对话框时,就会显示当前的字体特性。
(4) 在CViewerView::OnFormatTxtcolor()函数中添加如图7所示的代码。
图8 OnFormatTxtcolor()函数代码
CColorDialog类封装了通用颜色对话框的全部操作。在定义对话框对象时,可以指定默认选定的颜色值,若不指定,则默认颜色值为RGB(0,0,0)(黑色)。
(5) 修改CViewerView::OnDraw()函数代码,如图8所示的加框部分。
图9 修改后的OnDraw()函数代码
(6) 运行程序,打开当前目录中的ReadMe.txt文档,打开"格式"菜单,选中相应的菜单命令,改变其字体和颜色。图9是其中的一个结果。
图10 运行后的程序结果
Visual C .NET编程讲座之四(2)
Visual C .NET编程讲座之四(1)
Visual C .NET编程讲座之四(3)
Visual C .NET编程讲座之四(4)
Visual C .NET编程讲座之四(5)
Visual C .NET编程讲座之四(6)
Visual C .NET编程讲座之五
Visual C .NET编程讲座之六
Visual C .NET编程讲座之七
Visual C .NET编程讲座之八
Visual C .NET编程讲座之五
Visual C .NET编程讲座之(七)
Visual C .NET编程讲座之三(2)
Visual C .NET编程讲座之二(1)
Visual C .NET编程讲座之二(3)
Visual C .NET编程讲座之二(4)
Visual C .NET编程讲座之三(3)
Visual C .NET编程讲座之二(3)
| 天极Yesky - 全球中文IT第一门户 - 软件 - Visual C .NET编程讲座之一
Visual C# 编程操作Excel @阿良.NET
什么是DLL? Visual C 编程资料
防止对 Visual Basic .NET 或 C
《Visual C++_Turbo C串口通信编程实践》
C语言嵌入式系统编程修炼之四:屏幕操作!