if (!m_wndStatusBar.SetIndicators(indicators2,
  sizeof(indicators2)/sizeof(UINT)))
  {
  TRACE0("Failed to modify status bar\n");
  return ;      // fail to create
  }这样不行啊?

解决方案 »

  1.   

    你只用改这个
    static UINT indicators[] =
    {
    ID_SEPARATOR,           // status line indicator
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
             ID_SEPARATOR,           
    };
      

  2.   

    看到数组中有五项,就对应五个分栏。要添加一个分栏就添加一项;如
    static UINT indicators[] =
    {
    ID_SEPARATOR,           // status line indicator
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
             ID_SEPARATOR,       
             ID_SEPARATOR,     ///新加的    
    };
    就会有6个分栏了要删除一个分栏就闪出一项;如
    static UINT indicators[] =
    {
    ID_SEPARATOR,           // status line indicator
    ID_INDICATOR_CAPS,
    ID_INDICATOR_NUM,
    ID_INDICATOR_SCRL,
         //    ID_SEPARATOR,      //删去的 
       
    };
    就只有4个分栏了别的代码不用改了!good luck~~~~
      

  3.   

    同志,我的意思是动态创建,是在OnCreate中创建StatusBar之后我要根据子窗口的不同,来动态修改状态的分栏数
      

  4.   

    那就弄成一个栏,然后创建flat风格的按钮
      

  5.   

    我曾经是这样实现的,如果要从5个变为4个,就先在indicators[] 中创建9项,然后先显示其中5个,待要变化时用后面四个将以前的覆盖。很笨得方法。
      

  6.   


    在CMainFrame 中声明一个CStatusBar *pBar; 
    用两个indicators数组
    static UINT indicators[], static UINT indicators2[]
    切换的时候,先delete pBar;然后重新Create