Chinaunix首页 | 论坛 | 博客
  • 博客访问: 353846
  • 博文数量: 72
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 632
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-08 16:54
文章分类

全部博文(72)

文章存档

2007年(54)

2006年(18)

我的朋友

分类:

2007-01-29 12:47:11

方法一:
1、添加String Table资源,IDS_PANEL1和IDS_PANEL2的字符串资源。
2、添加成员变量:
     public:
          CStatusBar   m_wndStatusBar;
3、定义
      static UINT indicators[]=
      {
            IDS_PANEL1,
            IDS_PANEL2,
      };
4、在对话框的初始化过程中添加以下代码:
    CRect rect;
    GetClientRect(rect);
    if(!m_wndStatusBar.Create(this)||
       !m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)))
   {
          TRACE0("Can't create status bar\n");
          return false;
    }
    m_wndStatusBar.MoveWindow(0,rect.bottom-20,rect.right,20));
m_wndStatusBar.SetPaneText(0,"X:");
m_wndStatusBar.SetPaneText(1,"Y:");
5、如果想自己控制状态中每栏的长度,可以在建立字符串资源的时候用空格来增加长度。
6、如果在OnPaint()函数中重新设备一下位置的话,可以随窗体的变体而变化。

方法2:
这种方法好像不太容易实现随窗体变化而变化。

介绍
如何在对话框中加入状态栏,是许多的初学者想要解决的问题。本文给出了一种实现状态栏的方法,简洁实用。
正文
假设你已经建立了对话框应用程序,
请在对话框初始化的地方加入以下代码,记住别忘了在类中定义一个公有变量CStatusBarCtrl * m_StatusBar
//-----------代码如下---------------------
m_StatusBar = new CStatusBarCtrl;
m_StatusBar->Create(WS_CHILD|WS_VISIBLE|SBT_OWNERDRAW, CRect(0,0,0,0), this, 0);
int strPartDim[4]= {100, 280, 500, -1}; //分割数量
m_StatusBar->SetParts(4, strPartDim);
m_StatusBar->SetText("程序就绪",0,0); //第一个分栏加入"程序就绪",以下类似
m_StatusBar->SetText("欢迎你的光临", 1, 0);
m_StatusBar->SetText("哈哈你好", 2, 0);
m_StatusBar->SetText("郭郭, QQ: 63659875", 3, 0);
//下面是在状态栏中加入图标
m_StatusBar->SetIcon(3,
    SetIcon(AfxGetApp()->LoadIcon(IDI_ICON3),
        FALSE));//在第四个分栏中加入ID为IDI_ICON3的图标
//----------代码结束---------------------
如果想改变某个分栏项目文字,请调用如下类似代码:
m_StatusBar->SetText("文字内容", 2, 0);
比如,我们想改变第一个分栏的文字内容为“程序繁忙”,代码如下
m_StatusBar->SetText("程序繁忙", 0, 0); 
阅读(1938) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~