MFC-CStatusBar(状态栏)

转自于:https://blog.youkuaiyun.com/qq_18297675/article/details/50987223

效果如图:

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

CStatusBar m_statusbar;
   
   
  • 1

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

    //创建状态栏
    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);
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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

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);
}
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css">
                        </div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值