再探MFC(六)状态栏

来源:互联网 发布:知有陈迹而不知有今务 编辑:程序博客网 时间:2024/06/03 01:41

状态栏使用

step1

对话框添加变量

// 状态栏对象

CStatusBarm_wndStatusBar;

 

step2

定义状态栏各Indicator资源ID

例如

Resource.h

#defineID_CALL_STATUS            32783

 

step3

OnInitDialog调用

 

//创建和初始化状态栏

BOOLCLBDKFODlg::CreateStatusBar()

{

 

    static UINT nIndicators[] = {

        ID_CALL_STATUS

    };

 

    if (!m_wndStatusBar.Create (this))

        return FALSE;

 

    m_wndStatusBar.SetIndicators (nIndicators,1);

 

CRectrect;

GetClientRect(&rect);

m_wndStatusBar.SetPaneInfo(0,ID_CALL_STATUS,SBPS_NORMAL,rect.Width());

 

//m_wndStatusBar.GetStatusBarCtrl().SetBkColor(RGB(180,180,180));

RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_CALL_STATUS);

    return TRUE;

}

 

step4

更新状态栏文本

m_wndStatusBar.SetPaneText(0,"空闲");

 

 

Tocreate a status bar, follow these steps:

  1. Construct the CStatusBar object.
  2. Call the Create (or CreateEx) function to create the status-bar window and attach it to the CStatusBar object.
  3. Call SetIndicators to associate a string ID with each indicator.

There are three ways to update the text in a status-bar pane:

  1. Call CWnd::SetWindowText to update the text in pane 0 only.
  2. Call CCmdUI::SetText in the status bar's ON_UPDATE_COMMAND_UI handler.
  3. Call SetPaneText to update the text for any pane.

 

源文档 <https://msdn.microsoft.com/en-us/library/fha3tfk7.aspx>

 

 

参考资料

CStatusBarin CDialog,  SetPaneText and CTime,GetCurrentTime with VC++ Sample


0 0