RT
比如这个
VERIFY(m_wndToolBar.SetButtonText(0,"1"));
//我没有把Index为1的Btn加上文字
VERIFY(m_wndToolBar.SetButtonText(2,"2"));    CRect temp;
    m_wndToolBar.GetItemRect(0,&temp);
    m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(60,25));我没有把Index为1的Btn加上文字,但是它还是改了大小,
我希望能够使有文字描述的变宽来显示文字,没有文字的不要。

解决方案 »

  1.   

    同上.
    [email protected]
    看看代码
      

  2.   

    看看你的IE的TOOLBAR你就明白了。
    这个是我的IE的例子:
    ————————————————————
    你看,刷新和主页这两个按钮没有文字解释的。
    它们的宽度是24,
    而搜索,搜藏夹,媒体是有文字解释的,所以他们的宽度就更宽,为了显示文字。
    ——————————————————————————————————如果,在我的代码中,我只用了SetButtonText把搜索,搜藏夹,媒体,把这几个按钮旁边写上文字,
    搜索,搜藏夹,媒体变宽是正常的,而刷新和主页的按钮也同时变宽了,这时我不需要的。我就想不用把没文字的按钮同时变宽。
    代码都在上面了
      

  3.   

    再看不懂,到这里看图
    http://bbs.cpcw.com/attachments/forumid_100/zrSx6sziLTE=_MbVPg6E3QT41.gif
      

  4.   

    有文字的按钮需要设置其类型为TBSTYLE_AUTOSIZE,没有的只要TBSTYLE_BUTTON就行了
    已生成的按钮可以通过发送TB_SETBUTTONINFO消息来设置
      

  5.   

    if (!m_wndToolBar2.CreateEx(this, TBSTYLE_LIST|TBSTYLE_BUTTON, WS_CHILD | WS_VISIBLE | CBRS_TOP
            | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC ) ||
    !m_wndToolBar2.LoadToolBar(IDR_MAINFRAME))
    {
    TRACE0("Failed to create toolbar\n");
    return -1;      // fail to create
    } m_wndToolBar2.SetButtonText(1,"S");那我怎么设置AUTOSIZE也没用?
      

  6.   

    m_wndToolBar2.SetButtonText(1,"S");
    之后:TBBUTTONINFO tb;
    tb.cbSize = sizeof(TBBUTTONINFO);
    tb.dwMask = TBIF_STYLE;
    tbb.fsStyle = TBSTYLE_BUTTON|TBSTYLE_AUTOSIZE;m_wndToolBar2.GetToolBarCtrl().SetButtonInfo(1,&tb);
      

  7.   

    MyIE中有,自定义工具栏->文字选项(将文字置于右侧),Toolbar上没有文字的按钮不与有文字的按钮同时变宽MyIE3.01的源代码,http://www.vczx.com/article/show.php?id=473
      

  8.   

    sorry,
    上面代码中:
    m_wndToolBar2.GetToolBarCtrl().SetButtonInfo(1,&tb);
    第一个参数应该是按钮的ID而不是序号,你改成命令ID再试试。