CStatusBar(来自百度)
一个CStatusBar 对象是一个带有一行
文本输出窗格的控件,或者称为“指示器”。
这些输出窗格常被用作消息行和状态指示器。例如:简单解释所选菜单命令的
菜单帮助消息行,作为显示SCROLL LOCK,NUMLOCK 以及其它键状态的指
示器。
在MFC4.0 之后新增加的成员函数CStatusBar:: GetStatusBarCtrl,允许你利用
Windows 通用控件对状态条的定制和其它功能的支持。CStatusBar 成员函数提
供了Windows 通用控件的大多数功能;但是,当你调用GetStatusBarCtrl 时,
你可以赋予你的状态条更多的Windows95 状态条的特性。当你调用
GetStatusBarCtrl 时, 它将返回一个对
CStatusBarCtrl 对象的引用。参见
CStatusBarCtrl 可以获得有关使用Windows 通用控件设计工具条的更多信息。
有关通用控件的更多的一般信息,请参见“Windows 95 SDK 程序员参考”中
的“通用控件”。
当创建一个工具条时,可以使用一个字符串ID
数组,框架把这一组ID 与对应
的指示器关联起来。此后,你就可以使用字符串ID 或索引值访问一个指示器。
缺省的,第一个指示器是“可伸缩的”:该指示器占据了其它指示器窗格未用
到的状态条长度,因此其它窗格是右对齐的。
可以按下列步骤创建一个状态条:
1. 构造CStatusBar 对象。
2. 调用Create(或CreateEx)函数来创建状态条窗口并将它连接到CStatusBar
对象。
3. 调用
SetIndicators 函数将字符串ID 与每一个指示器联系起来。
有三种办法可以更新状态条窗口中的文本:
1. 调用CWnd::SetWindowText 只更新窗格0 中的文本。
2. 在状态条的ON_UPDATE_COMMAND_UI 处理程序中调用
CCmdUI::SetText 函数。
void CPCRemoteDlg::CreatStatusBar()
{
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT))) //创建状态条并设置字符资源的ID
{
TRACE0("Failed to create status bar\n");
return ; // fail to create
}
CRect rc;
::GetWindowRect(m_wndStatusBar.m_hWnd,rc);
m_wndStatusBar.MoveWindow(rc); //移动状态条到指定位置
}
然后在 OnInitDialog() 函数中调用该函数