为什么我的CStatusBar始终是灰色的,但是VC自己的num就可以变成正常状态?我使用下面的代码创建了状态条 
//------------------- 
// Create status bar: 
//------------------- 
if (!m_wndStatusBar.Create(this) || 
!m_wndStatusBar.SetIndicators(indicators, 
  sizeof(indicators)/sizeof(UINT))) 

TRACE0("Failed to create status bar\n"); 
return -1;      // fail to create 
} 我在indicators中添加了一个自己的项ID_INDICATOR_AD 
static UINT indicators[] = 

ID_SEPARATOR,          ID_INDICATOR_CAPS, 
ID_INDICATOR_NUM, 
ID_INDICATOR_SCRL, 
        ID_INDICATOR_AD  
}; ID_INDICATOR_AD实在String table中定义的。 现在在界面下显示出来了,可以改变文字, 但是总是灰色的。我想根据状态改变为不是灰色。看来MSDN,没有找到对应的接口,请问怎么办? 
请问一定要自己绘制吗?我觉得这么简单的操作,自己绘制太麻烦了。我也试了CMFStatusBar, 给文字设置颜色后,还是不起效果,始终是灰色。 是不是有些选项没有设置好?
我只要不是灰色的就可以。或者需要两种状态就可以。

解决方案 »

  1.   

    我见了一个dialog,也是没问题的
    static UINT indicators[] = 

    ID_SEPARATOR,          ID_INDICATOR_CAPS, 
    ID_INDICATOR_NUM, 
    ID_INDICATOR_SCRL, 
            ID_INDICATOR_AD  
    };  CRect rect;
     GetClientRect(rect); //获得客户区的大小 if (!m_wndStatusBar.Create(this) || 
    !m_wndStatusBar.SetIndicators(indicators, 
      sizeof(indicators)/sizeof(UINT))) 

    TRACE0("Failed to create status bar\n"); 
    return -1;      // fail to create 
    }
    m_wndStatusBar.MoveWindow(0, rect.bottom-20, rect.right, 20); //移动状态栏
      

  2.   

    我用的VS2008sp1, 带featurePack, 重新做了MDI, SDI 工程,都一样。
      

  3.   

    我用的vs2005,做了MDI, SDI 工程,不是灰色的
      

  4.   

    我用的VS2008, 带featurePack, 重新做了MDI, SDI 工程,都没有问题。 sp1装了也没有问题,但控制面板的装程序里没有看到sp1,如果是sp1的问题,Uninstall sp1 then try
      

  5.   

    可以用ON_UPDATE_COMMAND_UI消息处理void CMainFrame::OnUpdateStatusBar(CCmdUI* pCmdUI)
    {
    pCmdUI->Enable(TRUE);
    }