CStatusBarCtrl是一个“状态条控制项”是一个水平的视窗,通常显示在一个父视窗的底部,在其中应用程式可以显示不同类型的状态信息。
基本介绍
- 中文名CStatusBarCtrl
- 类型状态条控制项
- 参见 Visual C++
- 提供Windows通用状态条控制项的性能
模组细数
可以将此状态条控制项分割为多个部分,用来显示多种类型的信息。
CStatusBarCtrl类提供了Windows通用状态条控制项的性能。这个控制项(也就是CStatusBarCtrl类)只对运行在Windows 95和Windows NT3.51或更新版本下的程式来说是可用的。
有关使用CStatusBarCtrl的更多信息,参见“Visual C++程式设计师指南”中的“控制项主题”和“使用CStatusBarCtrl”。
#include <afxcmn.h>
请参阅CToolBarCtrl
类成员
构造函式
CStatusBarCtrl() 构造一个CStatusBarCtrl对象。
Create() 创建状态条,并将它与CStatusBarCtrl对象连线。
属性
SetText() 设定一个状态条控制项的给定部分中的文本。
GetText() 从一个状态条控制项的给定部分中获取文本。
GetTextLength() 从一个状态条控制项的给定部分获取文本的字元的长度。
SetParts() 设定一个状态条控制项中的一部分和每部分右边的坐标。
GetParts() 获取一个状态条控制项中的部分区域的数目。
GetBorders() 获取一个状态条控制项的水平或垂直边界的对齐宽度。
SetMinHeight() 设定一个状态条控制项的绘製区域的最小高度。
SetSimple() 指定一个状态条是显示简单的文本,还是显示前一次调用。
SetParts()设定的所有控制项部分。
GetRect() 获取状态条控制项中的一部分的边界矩形的尺寸。
IsSimple() 检查状态条视窗来确定它是否处于简单模式。
GetTipText() 获取状态条中的一个窗格的工具提示文本。
SetTipText() 设定状态条中的一个窗格的工具提示文本
SetBkColor() 设定一个状态条控制项的背景颜色。
SetIcon() 设定状态条控制项中的窗格的图表。
可重载
DrawItem() 自主绘製一个状态条控制项的外观。
添加状态栏
方法一
1.添加成员变数CStatusBarCtrl m_StatusBar;
2.在OnInitDialog()中加入
m_StatusBar.Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0);
int strPartDim[3]= {100, 200, -1}; //分割数量
m_StatusBar.SetParts(3, strPartDim);
//设定状态栏文本
m_StatusBar.SetText("分栏一", 0, 0);
m_StatusBar.SetText("分栏二", 1, 0);
m_StatusBar.SetText("分栏三", 2, 0);
//下面是在状态栏中加入图示
m_StatusBar.SetIcon(1,
SetIcon(AfxGetApp()->LoadIcon(IDR_MAINFRAME),
FALSE));//为第二个分栏中加的图示
方法二
1.添加成员变数CStatusBar m_wndStatusBar;
2.在OnInitDialog()中加入
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS, //CAP lock indicator.
ID_INDICATOR_NUM, //NUM lock indicator.
ID_INDICATOR_SCRL, //SCRL lock indicator.
};
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status barn");
return -1; // fail to create
}
UINT nID; //控制状态栏里面的分栏
m_wndStatusBar.SetPaneInfo(0,nID,SBPS_STRETCH|SBPS_NOBORDERS,100);//返回值存nID中
m_wndStatusBar.SetPaneText(0,"就绪");
m_wndStatusBar.SetPaneInfo(1,nID,SBPS_NORMAL,100);
m_wndStatusBar.SetPaneText(1,"大写");
m_wndStatusBar.SetPaneInfo(2,nID,SBPS_POPOUT,100);
m_wndStatusBar.SetPaneText(2,"数字");
SetPaneInfo()函式的第三个参数的可选项如下
// SBPS_NOBORDERS No 3-D border around the pane.
// SBPS_POPOUT Reverse border so that text "pops out."
// SBPS_DISABLED Do not draw text.
// SBPS_STRETCH Stretch pane to fill unused space. Only one pane per status bar can have this style.
// SBPS_NORMAL No stretch, borders, or pop-out.
//----------------让这个状态栏最终显示在对话框中-------------
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);