自己派生了一个CToolBar的子类CMyBar,是在对话框中(非文档类),然后动态创建的一个工具栏,而且用到了CImageList添加图片,调用SetButtonText没显示上面文字,怎么处理?高手,出下手吧。

解决方案 »

  1.   

    m_wndToolBar.Invalidate();
    m_wndToolBar.UpdateWindow();
    试下呢。
      

  2.   

    TBSTYLE_LIST  添加工具栏类型
      

  3.   


    CMybar m_mybar;
    m_mybar.SetButtonText(0,"新建");
    m_mybar.SetButtonText(1,"打开");
    m_mybar.SetButtonText(2,"保存");
    ........................
      

  4.   

            m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,3,1);
    CBitmap bmp;
    for(int i=0;i<3;i++)
    {
    bmp.LoadBitmap(IDB_BITMAP2+i);
    m_ImageList.Add(&bmp,RGB(255,255,255));
    bmp.DeleteObject();
    }
    UINT ID[4];
    for (int n=0;n<4;n++)
    {
    ID[n]=ID_BUTTON1+n;
    }
    m_ToolBar.CreateEx(this);
    m_ToolBar.SetButtons(ID,4);
    m_ToolBar.SetSizes(CSize(40,40),CSize(32,32));
    m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
    //m_ToolBar.SetButtonStyle(3,TBSTYLE_LIST);
    //m_ToolBar.SetButtonText(3,_T("aaa"));
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
    //m_ToolBar.Invalidate();
    //m_ToolBar.UpdateWindow();已按楼上各位方位测试,结果仍没显示出来。要说一点,这个工具栏是动态创建的。
      

  5.   

    SetSizes 第一个参数设大一点看看
      

  6.   

    http://support.microsoft.com/kb/232017