打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MFC如何在基于对话框的程序中添加状态栏
userphoto

2022.09.22 云南

关注

1.创建一个基于对话框的程序

2.在对话框类中添加公有成员

CStatusBar m_wndStatus;

3.在资源视图中添加string Table资源

例如:我们添加下面三个


接下来我们在cpp文件开始部分添加下面数组

  1. static UINT indicators[]={
  2. ID_TEST1,
  3. ID_TEST2,
  4. ID_TEST3,
  5. };

在Initstance函数中添加如下代码

  1. if(!m_wndStatus.Create(this)||!m_wndStatus.SetIndicator(indicators,3))
  2. {
  3. MessageBox(_T("未能成功创建状态栏"));
  4. }

4.接下来有最重要的一步就是添加下面这条语句

RespositionBar(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

这个语句的作用就是让这个状态栏根据窗口大小自动调整最终显示在对话框中(在文档程序中不必要)

效果如下


5.我们来修改状态栏每一个栏目的大小和上面显示的内容

用到两个函数分别为SetPaneInfo()和SetPaneText()

函数原型如下

void SetPaneInfo(int nIndex, UINT nID, UINT nStyle, int cxWidth);

nIndex:状态栏的编号,从0开始

nID:ID

nStyle:风格

                 SBPS_NOBORDERS 窗格周围无三维边框

                  SBPS_POPOUT 窗格突出显示

                  SBPS_DISABLED 不画文本

                  SBPS_STRETCH 伸缩窗格以填满空间(只能有一个)

                   SBPS_NORMAL 不伸缩,无边框,不凸显

cxWidth:状态栏长度

BOOL SetPaneText(int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE);

nIndex:编号

lpszNewText:要显示的文本

我们在RespositionBar函数前面添加如下代码

  1. m_wndStatus.SetPaneInfo(0, ID_TEST1, SBPS_NORMAL, 100);
  2. m_wndStatus.SetPaneInfo(1, ID_TEST2, SBPS_NORMAL, 200);
  3. m_wndStatus.SetPaneInfo(2, ID_TEST3, SBPS_NORMAL, 300);
  4. m_wndStatus.SetPaneText(0, _T("状态栏"));

效果如下


自己对比一下

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
VC 添加StatusBar
状态栏设计 CStatusBar
Z:给对话框添加菜单 工具栏 状态栏简易方法
单文档窗口状态条的“就绪”怎么去掉?
VS2010/MFC编程入门之三十八(状态栏的使用详解)
关于模态/非模态对话框不响应菜单的UPDATE
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服