看了别人的一个软件,他的图标在安装目录下(见附件),是由6个64x64的图标组成的Bmp文件。
他是如何导入到工具栏,实现分割的

解决方案 »

  1.   

    BOOL CToolBar::LoadToolBar(LPCTSTR lpszResourceName)
    {
    ASSERT_VALID(this);
    ASSERT(lpszResourceName != NULL); // determine location of the bitmap in resource fork
    HINSTANCE hInst = AfxFindResourceHandle(lpszResourceName, RT_TOOLBAR);
    HRSRC hRsrc = ::FindResource(hInst, lpszResourceName, RT_TOOLBAR);
    if (hRsrc == NULL)
    return FALSE; HGLOBAL hGlobal = LoadResource(hInst, hRsrc);
    if (hGlobal == NULL)
    return FALSE; CToolBarData* pData = (CToolBarData*)LockResource(hGlobal);
    if (pData == NULL)
    return FALSE;
    ASSERT(pData->wVersion == 1); UINT* pItems = new UINT[pData->wItemCount];
    for (int i = 0; i < pData->wItemCount; i++)
    pItems[i] = pData->items()[i];
    BOOL bResult = SetButtons(pItems, pData->wItemCount);
    delete[] pItems; if (bResult)
    {
    // set new sizes of the buttons
    CSize sizeImage(pData->wWidth, pData->wHeight);
    CSize sizeButton(pData->wWidth + 7, pData->wHeight + 7);
    SetSizes(sizeButton, sizeImage); // load bitmap now that sizes are known by the toolbar control
    bResult = LoadBitmap(lpszResourceName);
    } UnlockResource(hGlobal);
    FreeResource(hGlobal); return bResult;
    }这是MFC里调用工具栏的代码,看一下就明白了,可以自动分割的
      

  2.   

    在Resource中将bmp文件一个一个的导入,然后Ctrl+C,然后在ToolBar中Ctrl+v,就实现分割了
      

  3.   

    http://photos.i.cn.yahoo.com/photo-M3I2oAwpcqe8elt2Jkwpyrs-?cq=1&aid=80f0&pid=ff64.jpg#doc-body
    图片没有贴上,可能您搞错我的意思了
      

  4.   

    呵呵,你可以建立一个SDI工程看一下,对于工具栏上的分割图标,在工程的Res中是以整个bmp文件存在的,也就是说,如果你在工具栏上一个一个的添加,vc会自动生成一个Bmp文件的
      

  5.   

    制作工具栏一般的方法是:制作几个不同状态的图标(ICON),就想你图片上显示的那几个图标一样,然后一个一个的导入Resource中,再复制拷贝到ToolBar中,那样编译工程,你就会在Res中看到几个图标已经不是单独的图标了,而是一整个bmp文件了
      

  6.   

    ctoolbarctrl 有imagelistctrl成员吧