如何将一个已有的位图资源直接作为工具栏..... 编辑工具栏时,难道真的只能一个个自己画位图,就不能直接将我已有的漂亮的位图导进去吗,或像VB一样有系统提供的可选的快捷按钮????? 谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你有合适的,当然可以.你画出来不是也要导进去的吗?!!但导入可能会很麻烦.你可以这样做.把你的图片考到工程的Res目录,打开工程的.rc找到如下的句子(工具栏名 工具栏对应的位图.IDR_CTRL_BAR BITMAP DISCARDABLE "res\\Tb3.bmp"改为你自己的就可以了,改完后原来的位图就可以不要了.当然位图要合规格的,前景要RGB(192,192,192),否则会不透明,而且大小也要合你工具栏按钮的大小,如工具栏为5个16*16的,那么位图应该为80*16.我是成功了的,也祝你成功. 没有这么夸张吧!直接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(); 谢谢各位,真的有这么麻烦吗?有没有简单点的啊,我的位图是32*32的,(.ioc) 可以用图片工具转换ICO格式到BMP,再直接import bitmap应该吧~~ 先从资源import这个icon,然后用复制、粘贴到工具栏上! 先要看是不是16色的如果是直接替换ToolBar.bmp OK如果不是可以转一张16色的替换再用真彩的作一个图象列表付给m_wndToolBar OK还是搞不定找我有写好的类自己看看 [email protected] 请问,"greensofter(勇敢一点)" 的方法可以吗?能否跟我把做法再详细点,感谢各位的帮助!!我的位图是32*32,256色. 请问,"greensofter(勇敢一点)" 的方法可以吗?能否跟我把做法再详细点,不可以,你应该也知道在MFC里如果你想复制/粘帖的话,是限制在16色的.我有一个建议,你不要找简单的办法了,我是找过n多简单办法的,可能会成功,但你会在使用中遇到很多麻烦,远没有复杂的办法一步到位来的舒服.以上仅只个人观点. 几个混淆的概念Create, PreSubClassWindow 数组如何存入csv文件 多线程new和delete MSDN2005如何设置只搜索标题? 怎样隐藏WMPPlayer控件的播放以及暂停等按钮? 求教,IDC_STATIC控件赋值有那些方法? 怎样动态改变小托盘的图标 laiyiling(最熟悉的陌生人) 应该是数据库这个模块最热心的啦,数据库高手们进来我们探讨一个问题。 终于能给200分了,我散 MFC中ASSERT和ASSERT_VALID宏展开后的代码是什么?我是要代码,不是这个宏的功能,知情者请告之 完成端口的问题,请教高手! 请教:如何解决MDI中文档切换的问题?
IDR_CTRL_BAR BITMAP DISCARDABLE "res\\Tb3.bmp"
改为你自己的就可以了,改完后原来的位图就可以不要了.
当然位图要合规格的,前景要RGB(192,192,192),否则会不透明,而且大小也要合你工具栏按钮的大小,如工具栏为5个16*16的,那么位图应该为80*16.
我是成功了的,也祝你成功.
下面的是实现了工具栏的两种状态(也就是鼠标停靠和不停靠的状态)
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();
我的位图是32*32的,(.ioc)
如果是直接替换ToolBar.bmp OK
如果不是可以转一张16色的替换
再用真彩的作一个图象列表付给m_wndToolBar OK
还是搞不定找我有写好的类自己看看 [email protected]
我的位图是32*32,256色.