我看到一些工具栏按钮加文字的,基本都是显示在按钮图标的下方,我现在想在按钮图标的右边怎么办啊?

解决方案 »

  1.   

    使用CToolBarCtrl类的AddString()函数可以给工具栏按扭添加一个字符串
      

  2.   

    还要用InsertButton函数将每一个按扭与一个文字串想关联。
    BOOL CMyTextToolBar::LoadToolBarEx(UINT nID,TOOLTEXT *pToolText,int nCnt)
    {
    BOOL bReturnValue;
    if (bReturnValue=LoadToolBar(nID))
    {
    for (int i=0;i<nCnt;i++)
    {
    TBBUTTON tb;
    int inx=CommandToIndex(pToolText[i].idCommand);
    GetToolBarCtrl().GetButton(inx,&tb);
    CString str;
    str.LoadString(pToolText[i].idString);
    int nLen = str.GetLength() + 1;
    TCHAR * pStr = str.GetBufferSetLength(nLen);
    pStr[nLen] = 0;
    tb.iString=GetToolBarCtrl().AddStrings(pStr);
    str.ReleaseBuffer();
    GetToolBarCtrl().DeleteButton(inx);
    GetToolBarCtrl().InsertButton(inx,&tb);
    }
    CSize sizeImage(16,15);
    CSize sizeButton(35,35);
    SetSizes(sizeButton, sizeImage);
    }
    return bReturnValue;
    }int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    return -1;
    if (!m_wndToolBar.Create(this) ||!m_wndToolBar.LoadToolBarEx
    (IDR_MAINFRAME,(TOOLTEXT*)&ToolText,TOOLTEXT_NUM))
    {
    TRACE0("未能创建工具栏\n");
    return -1;      
    }
    if (!m_wndStatusBar.Create(this) |!m_wndStatusBar.SetIndicators
    (indicators,sizeof(indicators)/sizeof(UINT)))
    {
    TRACE0("未能创建状态栏\n");
    return -1;      
    }
    m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle()|
                               CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC);
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);
    return 0;
    }
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
    // TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
    // 样式 return TRUE;
    }
      

  3.   

    谢谢,请问CMyTextToolBar是CToolBar的子类还是CToolBarCtrl的子类呢?
      

  4.   

    TOOLTEXT是什么类,编译好象不通过啊?