第7节  状态栏

更新于 2026年10月10日 版权声明
第7节 状态栏

状态栏是带有一行文本输出窗 格的控制条,这些窗格称为“指示器”。例如,在“我的电脑”状态栏中含有3个“指示器”,分别显示文件信息、文件大小和所在位置等,如图14-48所示。

图示

图14-48 资源管理器的状态栏

打开“md”绘图软件工程,用于演示状态栏的开发方法。

1)在资源视图的字符串表中,添加2个字符串资源作为状态栏的指示器文字,如图14-49所示。

图示

图14-49 添加字符串资源

2)ID和文本见表14-8。

表14-8 字符串ID和文本

图示

3)在CMainFrame::OnCreate函数中,修改状态栏创建代码。

图示

4)编译并运行,测试程序,如图14-50所示。

图示

图14-50 查看运行结果

注意:如果出现“afxres.rc(120)”的错误,则把其中的错误代码整行删除再按<Ctrl+S>组合键保存即可。

//AFX_IDS_UNNAMED_FILE "未命名文件"

5)在类视图中的CMainFrame类上添加一个公有成员函数,如图14-51所示。

图示

图14-51 添加普通成员函数

6)修改函数代码。

图示

7)在视图类中WM_MOUSEMOVE消息映射函数的开头添加一行代码。

图示

8)编译并运行,测试程序,如图14-52所示。状态栏中间的“指示器”能够实时显示光标在视图中的坐标。(https://www.daowen.com)

9)在CMainFrame类中添加一个私有成员函数,用于自动刷新指示器文字,如图14-53所示。

图示

图14-52 查看运行结果

图示

图14-53 添加普通成员函数

10)修改函数代码。

图示

图示

11)在CMainFrame类的消息映射中,手工添加一个更新“指示器”消息。

图示

12)在CMainFrame::OnCreate函数的末尾添加一行代码。

图示

13)在CMainFrame类中添加WM_TIMER消息映射函数,如图14-54所示。

图示

图14-54 添加WM_TIMER消息映射函数

14)修改函数代码。

图示

15)编译并运行,测试程序。状态栏第3个“指示器”自动刷新当前时间,如图14-55所示。

16)有三种方法可以更新状态条指示器文字。

①调用CWnd::SetWindowText只更新第一个指示器中的文本。

②在状态栏的ON_UPDATE_COMMAND_UI消息映射函数中调用CCmdUI::SetText函数。

图示

图14-55 查看运行结果

③调用SetPanelText函数更新任何窗格中的文本。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)