CMFCStatusBar
生活百科 2023-01-25 16:55生活百科www.aizhengw.cn
CMFCStatusBar
基本介绍
- 外文名CMFCStatusBar
- 类别状态栏
- 作用显示各种状态
- 领域计算机
简介
状态栏用来显示各种状态。状态栏实际上也是一个视窗,一般分为几个窗格,每个窗格分别用来显示不同的信息和状态等,如选单项和工具列按钮的提示信息。
用VS2010 MFC嚮导生成的单文档或多文档程式都会自动创建状态栏。在单文档或多文档程式运行结果界面中可以看到视窗底部有个状态栏,并被分为了几个窗格,默认分别显示了选单项和工具列按钮的提示信息及Caps Lock、Num Lock、Scroll Lock键的状态。
,我们可以自定义状态栏,加入新的提示信息或指示器。
创建状态栏时可以使用CMFCStatusBar类对象。CMFCStatusBar类是自VS2008以来提供的状态栏类,用法与CStatusBar类相似,甚至很多成员函式也类似,但它的功能更加丰富。
状态栏
下面就以VS2010 MFC嚮导自动生成的单文档程式为例,来讲讲CMFCStatusBar状态栏的创建步骤
1. 构造一个CMFCStatusBar类的对象。
在MainFrm.h档案中,为CMainFrame类定义了一个成员对象CMFCStatusBar m_wndStatusBar;。
2. 调用CMFCStatusBar::Create函式来创建状态栏视窗。
在CMainFrame::OnCreate函式的实现中,我们可以找到CMFCStatusBar::Create函式的调用
if (!m_wndStatusBar.Create(this))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
3. 调用CMFCStatusBar::SetIndicators函式为状态栏划分窗格,并为每个指示器设定显示文本。
CMFCStatusBar::SetIndicators函式需要一个ID数组的参数,在MainFrm.cpp中,如下定义了一个窗格ID的数组
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
indicators数组定义了状态栏窗格的划分信息。第一个元素一般为ID_SEPARATOR,对应的窗格用来显示命令提示信息,上面数组中的后三项为指示器文本的字元串ID,可以根据这些ID在String Table字元串资源中找到相应的字元串,查找方法是,在Resource View资源视图中,打开String Table字元串资源,可以看到有ID、Value和Caption三列,在ID列中找到需要的ID,对应的Caption列文本就是要查找的字元串。ID_INDICATOR_CAPS、ID_INDICATOR_NUM和ID_INDICATOR_SCRL对应的字元串分别是CAP、NUM、SCRL,对应的三个窗格分别为Caps Lock指示器、Num Lock指示器和Scroll Lock指示器。
定义了指示器数组就可以使用CMFCStatusBar::SetIndicators函式为状态栏划分窗格了,依然是在CMainFrame::OnCreate函式中调用
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
这样状态栏就创建完成了,之后我们可以通过CMFCStatusBar::SetPaneText设定窗格的文本。