TBBUTTON button[3];
m_ImageList.Create(128,128,ILC_COLOR32|ILC_MASK,0,0);
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_FILES));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_CMD));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_KEYBOARD));
//m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
    m_TBarCtrl.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,12000);
m_TBarCtrl.SetImageList(&m_ImageList);
for(int i=0;i<3;i++)
{
button[i].fsState=TBSTATE_ENABLED;
button[i].fsStyle=TBSTYLE_BUTTON;
button[i].iBitmap=i;
}
    m_TBarCtrl.AddButtons(1,&button[1]);//崩溃了
m_TBarCtrl.AutoSize();
m_TBarCtrl.SetStyle(TBSTYLE_FLAT|CCS_TOP);

解决方案 »

  1.   

    m_TBarCtrl.AddButtons(1,button);
    这么写还是不对啊&button这么写编译不过去
      

  2.   

    There must be the same number of elements in the array as buttons specified by nNumButtons.
      

  3.   

     m_TBarCtrl 创建成功了?你把crect 改成 具体大小呢?
      

  4.   


    我换了一种方法,按钮加上去了,但是图标没有加上去,bitmap不能加载icon图标么? m_ImageList.Create(16,16,ILC_COLOR24|ILC_MASK,1,1);//图片大小必须一致
      CBitmap bmp;
      for(int i=0;i<3;i++)
       {
       bmp.LoadBitmap(IDI_ICON_TEST);
       m_ImageList.Add(&bmp,RGB(255,255,255));
       bmp.DeleteObject();
       }
       UINT nArray[6];
       for(i=0;i<3;i++)
       {
       nArray[i]=ID_BUTTON1+i;
       }
      m_Toolbar.CreateEx(this);//创建工具栏控件,CreateEx函数创建的工具栏,默认有浮动按钮属性
       m_Toolbar.SetButtons(nArray,6);//创建六个工具按钮,并依次设置ID号,对应nArray数组的元素
       m_Toolbar.SetSizes(CSize(60,56),CSize(16,16));//函数第一个是按钮大小,第二个是图像大小,按钮必须比图像要大,具体是按钮的要
      
      //比图像的宽大7或者以上,高6
       m_Toolbar.GetToolBarCtrl().SetImageList(&m_ImageList);//设置图像
       RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
      

  5.   

    BITMAP bmpObj;
    bmp.GetBitmap(&bmpObj); UINT nFlags = ILC_MASK; nFlags |= (theApp.m_bHiColorIcons) ? ILC_COLOR24 : ILC_COLOR4; m_ClassViewImages.Create(16, bmpObj.bmHeight, nFlags, 0, 0);
    m_ClassViewImages.Add(&bmp, RGB(255, 0, 0));
    可以加在的
      

  6.   


    TBBUTTON button[3];
    m_ImageList.Create(128,128,ILC_COLOR32|ILC_MASK,0,0);
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_FILES));
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_CMD));
    m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_KEYBOARD));
    //m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
        m_TBarCtrl.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,12000);
    m_TBarCtrl.SetImageList(&m_ImageList);
    for(int i=0;i<3;i++)
    {
    button[i].fsState=TBSTATE_ENABLED;
    button[i].fsStyle=TBSTYLE_BUTTON;
    button[i].iBitmap=i;
    }
        m_TBarCtrl.AddButtons(1,button);//崩溃了
    m_TBarCtrl.AutoSize();
    m_TBarCtrl.SetStyle(TBSTYLE_FLAT|CCS_TOP);
    这样的为啥不行嫩?我加载的icon,感觉没问题呀。
      

  7.   

    把这两句加上就没问题了
    button[i].dwData=NULL;
    button[i].iString=NULL;