来源:https://blog.csdn.net/qq_18297675/article/details/50987223
标签:CStatusBar MFC 状态栏
效果如图:
首先在头文件中定义一个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);}
联系客服