MFC-CStatusBar(状态栏)

效果如图:
MFC-CStatusBar(状态栏)_第1张图片

首先在头文件中定义一个CStatusBar变量

CStatusBar m_statusbar;

然后在初始化对话框中创建状态栏并且设置面板信息

    //创建状态栏
    m_statusbar.Create(this);
    //创建两个面板//第一个面板是1,第二个面板是2
    UINT nID[] = { 1,2 };
    m_statusbar.SetIndicators(nID, 2);

    //设置面板1信息 ,第一个面板,编号为1,正常显示,宽度为100
    m_statusbar.SetPaneInfo(0, 1, SBPS_NORMAL, 100);
    //设置面板2信息,第二个面板,编号为2,自动拉伸显示,刚开始宽度为0
    m_statusbar.SetPaneInfo(1, 2, SBPS_STRETCH, 0);

    //设置状态栏位置
    CRect rect = { 0 };
    GetClientRect(&rect);
    //rect.bottom - 20是状态栏的高度位置,20是状态的高度
    m_statusbar.MoveWindow(0, rect.bottom - 20, rect.right,20);

接着右键编辑框添加事件处理程序

void CMFCTESTDlg::OnEnChangeEdit()
{
    // TODO: 如果该控件是 RICHEDIT 控件,它将不
    // 发送此通知,除非重写 CDialogEx::OnInitDialog()
    // 函数并调用 CRichEditCtrl().SetEventMask(),
    // 同时将 ENM_CHANGE 标志“或”运算到掩码中。

    // TODO: 在此添加控件通知处理程序代码

    CString strText;
    GetDlgItemText(IDC_EDIT, strText);
    strText.Format(_T("字数:%d"), strText.GetLength());

    //在第二个面板上显示
    m_statusbar.SetPaneText(1, strText);
}

你可能感兴趣的:(mfc,状态栏,StatusBar)