首先我們創建一個簡單的MFC對話框程序,這個創建過程就省略了。假設我的工程名爲:CStatusBar1Dlg
測試環境:vc6.0環境下
下面介紹一下如何在對話框上添加狀態欄:
第一步:
在CStatusBar1Dlg.h頭文件中添加一個狀態欄的變量:CStatusBar m_wndStatusBar; //狀態欄對象
第二步:
在字符串表中添加自己需要在狀態欄中顯示的ID值,詳見截圖:
第三步:
在CStatusBar1Dlg.h的class外面定義一個結構體:
//添加狀態欄變量
static UINT indicators[]={IDS_STRING_CLIENT_CAPTION, IDS_STRING_VALUE, IDS_STRING_VERSION, IDS_STRING_DATE_CAPTION, IDS_STRING_DATE};
結構體裏面的就是我們剛纔在字符表中添加的ID。
第四步:
在OnInitDialog()方法中添加:
CRect rect;
GetClientRect(rect);
if( !m_wndStatusBar.Create(this)|| !m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)) )
{
TRACE0("Can't create status bar\n");
return FALSE;
}
//添加狀態欄信息
m_wndStatusBar.MoveWindow(1,rect.bottom-20,rect.right,20);// 調整狀態欄的位置和大小
m_wndStatusBar.SetPaneInfo(1,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,30);
m_wndStatusBar.SetPaneInfo(2,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,170);
m_wndStatusBar.SetPaneInfo(4,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,119);
CString dateTime ;
CTime t = CTime::GetCurrentTime();
dateTime = t.Format("%Y-%m-%d %H:%M:%S");
m_wndStatusBar.SetPaneInfo(4,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,119);
m_wndStatusBar.SetPaneText(4, dateTime,TRUE);