我曾经试着用CStatusBar类建立一个状态栏,但不能显示?不知为何?

解决方案 »

  1.   

    可以,创建成功了吗?看看Create的返回值,以及此时状态栏的大小和位置
      

  2.   

    定义 CStatusBar 变量:CStatusBar m_StatusBar;
    定义状态条指定状态:static UINT BASED_CODE indicators[] =
      {
         ID_INDICATOR_CAPS,
         ID_INDICATOR_NUM
      };在 OnInitDialog 中加入下面代码:  
       m_StatusBar.CreateEx    (this,SBT_TOOLTIPS,WS_CHILD|WS_VISIBLE|CBRS_BOTTOM,AFX_IDW_STATUS_BAR);
     
      // Set the indicators namely caps and nums lock status
      m_StatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));  CRect rect;
      GetClientRect(&rect);

      m_StatusBar.SetPaneInfo(0,ID_INDICATOR_CAPS,SBPS_NORMAL,rect.Width()/2);
      m_StatusBar.SetPaneInfo(1,ID_INDICATOR_NUM,SBPS_STRETCH ,rect.Width()/2);  RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_INDICATOR_NUM);  m_StatusBar.GetStatusBarCtrl().SetBkColor(RGB(180,180,180));
      

  3.   

    非常感谢飞鸟良大哥的解决,我的问题已经解决了,
      CRect rect;
      GetClientRect(&rect);

      m_StatusBar.SetPaneInfo(0,ID_INDICATOR_CAPS,SBPS_NORMAL,rect.Width()/2);
      m_StatusBar.SetPaneInfo(1,ID_INDICATOR_NUM,SBPS_STRETCH ,rect.Width()/2);  RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_INDICATOR_NUM);
    这一段程序我没有加!!
       给分!