Visual C .NET编程讲座之四(5)

来源:百度文库 编辑:神马文学网 时间:2024/04/27 22:59:48
在状态栏上显示文本
状态栏是一个水平长条,位于应用程序主窗口的底部。它可以分割成几个窗格,用来显示多组信息。 在"MFC应用程序向导"创建的单文档或多文档应用程序中,MainFrm.cpp文件定义了一个静态的indicator数组,这个数组中的元素与状态栏的窗格一一对应。
默认时,indicator数组元素只有四个:ID_SEPARATOR、ID_INDICATOR_CAPS 、ID_INDICATOR_NUM和ID_INDICATOR_SCRL。其中ID_SEPARATOR用作消息行窗格,用来显示菜单项或工具按钮的提示信息,其余三个元素是用作状态指示器窗格,分别用于[/p] 、[p align=center][/p] 和 [p align=center>
这三个键的状态显示。
 
下面的过程用来将字体名和文本颜色值分别显示在状态栏窗格上。
1. 添加状态栏窗格
(1) 将解决方案资源管理器窗口切换到"资源视图",展开后右击Viewer.rc,在弹出的快捷菜单中单击"资源符号"。在"资源符号"对话框中,单击"新建"按钮,添加一个新的ID号ID_STAT_TXTFONT,并取其默认的值101,如图21所示。

 
图21 添加新的资源符号
(2) 再添加一个新的资源符号ID_STAT_TXTCOLOR,取其默认的值(102)。
(3) 展开"资源视图"中的"String Table"节点,双击"String Table",打开"字符串表"资源。单击最下方的空白框,出现默认的字符串标识和值,单击该字符串标识,在其右侧出现相应的下拉按钮,单击该按钮,从中选择标识ID_STAT_TXTFONT,单击右侧的标题框,输入"显示字体",结果如图22所示。

图22 添加新的字符串
 
(4) 同样的方法再为ID_STAT_TXTCOLOR添加新的字符串"当前文本颜色",注意字符串的长度确定了添加的状态栏窗格的大小。
(5) 打开MainFrm.cpp文件,向indicators数组添加两个元素,如图23所示的加框部分。

图23 添加状态栏的窗格
 
(6) 运行程序,结果如图24所示,其中显示的文本是在前面设置的字符串,显然不能满足我们的要示。我们的目的是将当前文本显示的字体和当前颜色值在这两个窗格中显示出来。

图24 添加窗格后运行的结果
 
2. 更新状态栏窗格
更新状态栏的窗格是通过映射窗格ID的更新命令事件UPDATE_COMMAND_UI来实现的,但由于在类的属性窗口中不能直接对窗格ID进行事件映射,因此我们需要另寻他法。除了手动添加外,我们还可以使用临时菜单的办法,如下面的过程。
(1) 打开菜单资源,在"格式"菜单中再添加两个菜单项"1"和"2",分别将其ID号设置为ID_STAT_TXTFONT和ID_STAT_TXTCOLOR。
(2) 由于显示的内容与CViewerView类的成员变量直接有关,因此我们在CViewerView类中分别添加菜单项ID_STAT_TXTFONT和ID_STAT_TXTCOLOR的UPDATE_COMMAND_UI事件映射。
(3) 在映射函数中添加如图22所示的代码。

图22 添加的窗格映射代码
 
(4) 打开"生成"菜单,单击"重新生成解决方案"。
(5) 删除刚才在"格式"菜单中添加的"1"和"2"菜单项。
(6) 运行程序,结果如图23所示。

 
图23 最后运行结果