基于对话框程序,自定义状态栏

1.使用CStatusBar类。步骤如下:

    (1)在C***Dlg类为添加成员变量:CStatusBar m_StatusBar
   (2)在String Table中添加一些要显示在状态栏上的字符串。
   (3)在C***Dlg源文件中定义一个全局数组:
          static UINT indicators[]={
                           ID_SEPARATOR,
                          IDS_COMPANY,
                          IDS_MICROSOFT,
                         IDS_TIME
           };
   (4)在OnInitDialog()函数中添加如下代码:
             CRect Rect;
            GetClientRect(&Rect);                           //获取客户区域

            if(!m_StatusBar.Create(this) || !m_StatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT)))
           {
                    TRACE0("Failed to create status bar\n");
                     return -1;
             }
           m_StatusBar.MoveWindow(0,Rect.bottom-20,Rect.right,20);             //设置状态栏位置

2.使用CStatusBarCtrl类。步骤如下:

   (1)在C***Dlg类为添加成员变量:CStatusBarCtrl m_StatusBar
   (2)在OnInitDialog()函数中添加如下代码:
        CRect Rect;
        this->GetClientRect(&Rect);                  //获取客户区域

         m_StatusBar.Create(WS_CHILD | WS_VISIBLE,CRect(0,0,0,0),this,IDR_STATUSBAR);

        int width[5];
        width[0]=Rect.Width()*0.1;
       width[1]=Rect.Width()*0.4;
        width[2]=Rect.Width()*0.6;
        width[3]=Rect.Width()*0.8;
        width[4]=Rect.Width();

        m_StatusBar.SetParts(5,width);
        m_StatusBar.SetText("公司",0,0);
        m_StatusBar.SetText("微软(中国)有限公司",1,0);
        m_StatusBar.SetText("系统时间",3,0);

        SetTimer(1,1000,NULL);                             //设置定时器
   (3)在C***Dlg类上添加WM_TIMER消息响应,编写响应函数OnTimer(UINT nIDEvent):
          CTime time=CTime::GetCurrentTime();             //获取当前时间
          CString str=time.Format("%H:%M:%S");             //时间格式化为字符串

          m_StatusBar.SetText(str,4,0);

最终效果:

注解:SetParts函数的原型如下:

BOOL SetParts( int nParts, int* pWidths );

其中nParts指示将状态栏分为多少个部分;pWidths指向一个int型的数组,数组中每一个元素指示状态栏各部分相对于客户区域的右边界。

SetText函数的原型如下:

BOOL SetText( LPCTSTR lpszText, int nPane, int nType );

其中lpszText指向状态栏字符串;nPane指示要设置文本的状态栏部分的索引号;nType指示绘画操作的类型。

posted on 2009-05-22 15:27 小猪 阅读(449) 评论(0)  编辑 收藏 引用 所属分类: VC++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(3)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜