CStatusBarCtrl

CStatusBarCtrl

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);

相關詞條

熱門詞條

聯絡我們