CMFCStatusBar

return CMFCStatusBar::SetIn static

CMFCStatusBar類簡介

狀態欄用來顯示各種狀態。狀態欄實際上也是一個視窗,一般分為幾個窗格,每個窗格分別用來顯示不同的信息和狀態等,如選單項和工具列按鈕的提示信息。
用VS2010 MFC嚮導生成的單文檔或多文檔程式都會自動創建狀態欄。在單文檔或多文檔程式運行結果界面中可以看到視窗底部有個狀態欄,並被分為了幾個窗格,默認分別顯示了選單項和工具列按鈕的提示信息及Caps Lock、Num Lock、scroll lock鍵的狀態。
當然,我們可以自定義狀態欄,加入新的提示信息或指示器。
創建狀態欄時可以使用CMFCStatusBar類對象。CMFCStatusBar類是自VS2008以來提供的狀態欄類,用法與CStatusBar類相似,甚至很多成員函式也類似,但它的功能更加豐富。

創建CMFCStatusBar狀態欄

下面就以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設定窗格的文本。

相關詞條

相關搜尋

熱門詞條

聯絡我們