用MFC向导生成的状态栏每个之间都有个淡灰色的分割竖条,和IE的状态栏一样.但我不用向导生成的为什么没有.用SetPaneInfo方法设置的只会出现一块凹一块凸的那种,很丑,不是类型IE的那种.是不是还要指定某个属性才出现?谢谢指教!

解决方案 »

  1.   

    我的状态栏是代码生成的啊,没法用IDE编辑啊。我只想知道怎么用代码弄出那个“|”来
      

  2.   

    tryvoid SetButtonStyle( int nIndex, UINT nStyle );nStryle = TBBS_SEPARATOR   Separator
      

  3.   

    没有效果啊~
    TBBS_SEPARATOR是工具栏的风格参数吧。我说的是状态栏的。我试了用向导生成的MFC程序就是有IE状态栏的“|”的。自己设置的却没有
      

  4.   

    派生:CMyStatusBar
    #if _MFC_VER >= 0x400
    在:
       void CMyStatusBar::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
    自己画
      

  5.   

    //简单方法:
    static UINT indicators[] =
    {
    ID_SEPARATOR,           // status line indicator
    ID_SEPARATOR,           // 加一个 ID=1
    //用‘|’来代替
    m_pMainWnd = pMainFrame;//
    pMainFrame->m_wndStatusBar.SetPaneInfo(1, 1, SBPS_NOBORDERS, 2);
    pMainFrame->m_wndStatusBar.SetPaneText(1,"|");
      

  6.   

    根本不是这么回事啊!
    MFC向导生成的根本不用这样,好像是默认就有的。而且还发现一个问题,我得状态栏的颜色是纯灰色的,而IE那些状态栏是颜色上下有一点渐变的效果的。
      

  7.   

    窗体界面的文件:
    /**************************************************
     * 模块: MainFrame.cpp
     * 功能: 维护主界面程序
     **************************************************/
    #include "../App.h"const UINT CMainFrame::STAT_PANE[] = 
    {
    0,
    1,
    2
    };
    ...
    /**************************************************
     * 注释: 初始化
     **************************************************/
    CMainFrame::CMainFrame()
    {...
    //
    // 创建状态栏
    //
    m_objStatBar.Create(this);
    m_objStatBar.SetIndicators(STAT_PANE, sizeof(STAT_PANE) / sizeof(UINT)); m_objStatBar.SetPaneInfo(ID_PANE_NUM, STAT_PANE[0], SBPS_NOBORDERS, WIDTH_PANE_NUM);
    m_objStatBar.SetPaneInfo(ID_PANE_STATE, STAT_PANE[1], SBPS_NOBORDERS, WIDTH_PANE_STATE);
    m_objStatBar.SetPaneInfo(ID_PANE_VER, STAT_PANE[2], SBPS_NOBORDERS, WIDTH_PANE_VER);
    ...
    }
    窗体是在App的InitInstance里创建的。不知道这样和MFC向导生产的有是吗不同之处。
      

  8.   

    我觉得你向导生成一个工程,然后看看人家的代码,不就知道有没有区别了么?我想SBPS_NORMAL 应该是缺省的风格,而不是NOBORDERS