编辑工具栏时,难道真的只能一个个自己画位图,就不能直接将我已有的漂亮的
位图导进去吗,或像VB一样有系统提供的可选的快捷按钮?????
    谢谢!!

解决方案 »

  1.   

    如果你有合适的,当然可以.你画出来不是也要导进去的吗?!!但导入可能会很麻烦.你可以这样做.把你的图片考到工程的Res目录,打开工程的.rc找到如下的句子(工具栏名                                  工具栏对应的位图.
    IDR_CTRL_BAR            BITMAP  DISCARDABLE     "res\\Tb3.bmp"
    改为你自己的就可以了,改完后原来的位图就可以不要了.
    当然位图要合规格的,前景要RGB(192,192,192),否则会不透明,而且大小也要合你工具栏按钮的大小,如工具栏为5个16*16的,那么位图应该为80*16.
    我是成功了的,也祝你成功.
      

  2.   

    没有这么夸张吧!直接load进去不就行了~~当然位图和工具栏的大小得合适
    下面的是实现了工具栏的两种状态(也就是鼠标停靠和不停靠的状态)
             CImageList imageList;
    CBitmap bitmap; // Create and set the normal toolbar image list.
    bitmap.LoadBitmap(IDB_TOOLBAR_COLD);
    imageList.Create(21, 20, ILC_COLORDDB|ILC_MASK, 30, 1);
    imageList.Add(&bitmap, RGB(255,0,255));//去掉底色
    m_hotToolBar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)  imageList.m_hImageList);
    imageList.Detach();
    bitmap.Detach();
    //如果只需要一种就不用这么麻烦了
    // Create and set the hot toolbar image list.
    bitmap.LoadBitmap(IDB_TOOLBAR_HOT);
    imageList.Create(21, 20, ILC_COLORDDB|ILC_MASK, 30, 1);
    imageList.Add(&bitmap, RGB(255,0,255));
    m_hotToolBar.SendMessage(TB_SETHOTIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
    imageList.Detach();
    bitmap.Detach();
      

  3.   

    谢谢各位,真的有这么麻烦吗?有没有简单点的啊,
    我的位图是32*32的,(.ioc)
      

  4.   

    可以用图片工具转换ICO格式到BMP,再直接import bitmap应该吧~~
      

  5.   

    先从资源import这个icon,然后用复制、粘贴到工具栏上!
      

  6.   

    先要看是不是16色的
    如果是直接替换ToolBar.bmp OK
    如果不是可以转一张16色的替换
    再用真彩的作一个图象列表付给m_wndToolBar  OK
    还是搞不定找我有写好的类自己看看 [email protected]
      

  7.   

    请问,"greensofter(勇敢一点)" 的方法可以吗?能否跟我把做法再详细点,感谢各位的帮助!!
    我的位图是32*32,256色.
      

  8.   

    请问,"greensofter(勇敢一点)" 的方法可以吗?能否跟我把做法再详细点,不可以,你应该也知道在MFC里如果你想复制/粘帖的话,是限制在16色的.我有一个建议,你不要找简单的办法了,我是找过n多简单办法的,可能会成功,但你会在使用中遇到很多麻烦,远没有复杂的办法一步到位来的舒服.以上仅只个人观点.