在资源编辑器中将ico导入或COPY到toolbar中的位图中

解决方案 »

  1.   

    如果一定要在程序里面做,可以用ToolBarCtrl.GetImageList得到图象列表,再把Icon加到列表里面去。可以多看看CToolBar和CToolBarCtrl的成员函数。
      

  2.   

    用ico不闲太难看么?为什么不用BMP?
    先在资源里添加BITMAP,两个(一个是冷图,一个是热图,IE里用的那样)!
    在OnCreat函数里声明CImageList img;//给BITMAP if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
    | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
    !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))//IDR_MAINFRAME是TOOLBAR的资源ID
    {
    TRACE0("Failed to create toolbar\n");
    return -1;      // fail to create tool bar
    } m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 150);
    m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS); img.Create(IDB_HOTTOOLBAR, 22, 0, RGB(255, 0, 255));
    m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
    img.Detach();
    img.Create(IDB_COLDTOOLBAR, 22, 0, RGB(255, 0, 255));
    m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
    img.Detach();
    m_wndToolBar.SetButtonStyle(8,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);//设置第8个按钮有下拉按钮(像IE的收藏夹)
    m_wndToolBar.SetButtonStyle(12,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);//同上
    m_wndToolBar.SetButtonStyle(19,TBSTYLE_BUTTON | TBSTYLE_DROPDOWN);
    //为工具条加入标签文本 
    for(int i = 0; i < m_wndToolBar.GetCount(); i++) 
    { UINT id = m_wndToolBar.GetItemID(i); 
    CString s;
    if(!s.LoadString(id)) continue;
    int j = s.Find(_T('\n')); 
    if(j < 0) continue;
    s = s.Right(s.GetLength() - j - 1); 
    m_wndToolBar.SetButtonText(i,s); 
    }
    // Adjust sizes to include text 
    CRect rect; 
    m_wndToolBar.GetItemRect(0,&rect); 
    m_wndToolBar.SetSizes(rect.Size(),CSize(22,20));//设置按钮尺寸和图象尺寸,前者应大于后者
    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);
    通过以上代码就能制作出跟IE一样的TOOLBAR,我感觉应该比ICO的好,如果你一定要用ICO我也不阻拦你注意一点的是,上述代码产生的按钮能在按钮下面添加文字,文字你要在资源里添加,
    Prompt里面写上   这是一个演示\n按钮将在状态条里显示“这是一个演示”
    而“按钮”出现在按钮下面/
      

  3.   

    看看rc目录下的.ico文件,把他们替换为你的icon文件
      

  4.   

    呵!借花献佛,我也顺便问一句,对于超过16色的ICO文件这么办,直接使用颜色很难看!