MFC窗口增加状态栏的方法

⌚Time: 2022-06-09 23:07:15

👨‍💻Author: Jack Ge

在窗体类中定义CStatusBar变量


private:

    CStatusBar m_statusBar;

在窗体类的OnInitDialog()函数中


BOOL CTestStatusBarDlg::OnInitDialog()

{

    ...

    // TODO: 在此添加额外的初始化代码

    //定义状态栏面板的ID

    UINT nID[] = {1001,1002,1003};

    //创建状态栏

    m_statusBar.Create(this);

    //添加状态栏面板,参数为ID数组和面板数量

    m_statusBar.SetIndicators(nID,sizeof(nID)/sizeof(UINT));

    //设置面板序号,ID,样式和宽度,SBPS_NORMAL为普通样式,固定宽度,SBPS_STRETCH为弹簧样式,会自动扩展它的空间

    m_statusBar.SetPaneInfo(0,1001,SBPS_NORMAL,80);

    m_statusBar.SetPaneInfo(1,1002,SBPS_STRETCH,0);

    m_statusBar.SetPaneInfo(2,1003,SBPS_NORMAL,80);

    //设置状态栏位置

    RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

    //设置状态栏面板文本,参数为面板序号和对应文本

    m_statusBar.SetPaneText(0,L"aaa");

    m_statusBar.SetPaneText(1,L"bbb");

    m_statusBar.SetPaneText(2,L"ccc");

    ...

}

效果: