创建了一个toolbar,设置了一个imagelist,在imagelist中放了几个icon,然后在toolbar上添加了几个button使用TB_INSERTBUTTON,因为我的imagelist里icon不是方形的,在button旁边显示总是会有一块背景。请问
这个背景能变成透明的嘛?icon本身的背景就是透明的,在listview等控件里就是透明的。
这个背景能变成透明的嘛?icon本身的背景就是透明的,在listview等控件里就是透明的。
解决方案 »
- vc解析XML到内存
- 新手小白问题,,帮个忙看下!
- 谁能帮我介绍介几本,API函数用法及应用例子的相关书.
- 热爱网络编程,且打算从事或正在从事防火墙,NAT,VPN的朋友进来一下吧(非提问)
- 请教SOCKET4/5代理
- 谁有DirectX8.0或更早的SDK?100分相送!!!
- 我再onsize里面从新定位控件的位置,结果控件都面目全非,加上一句invalidata(NULL)
- 关于WINDOWS设计的冲问题!!!!!!!
- 为什么一个class会从ClassView里消失呢?(送分)
- c:\program files\microsoft visual studio\vc98\include\time.h(37) : error C2598: linkage specification must be at global scope
- 阻塞模式recv的问题
- 在VC下怎么样读写一个寄存器地址呢
再用imagelist添加bmp吧。。
在delphi中,直接添加透明图标是不会出现难看的背景问题的,在VC中的没试过。。
//高彩色工具条
CBitmap bmp;
bmp.LoadBitmap( IDB_SKINTB );
m_ImageList.Create( 16, 16, ILC_COLOR24 | ILC_MASK, 17, 0 );
m_ImageList.Add( &bmp, RGB(218,224, 242) );
bmp.DeleteObject(); bmp.LoadBitmap( IDB_SKINGRAYTB );
m_DisableImgLst.Create( 16, 16, ILC_COLOR24 | ILC_MASK, 17, 0 );
m_DisableImgLst.Add( &bmp, RGB(218,224, 242) );
bmp.DeleteObject(); CToolBarCtrl& ctrl = m_wndToolBar.GetToolBarCtrl();
ctrl.SetImageList( &m_ImageList );
ctrl.SetDisabledImageList( &m_DisableImgLst );
CImageList m_ImageList, m_DisableImgLst;
//高彩色工具条
CBitmap bmp;
bmp.LoadBitmap( IDB_SKINTB );
m_ImageList.Create( 16, 16, ILC_COLOR24 | ILC_MASK, 17, 0 );
m_ImageList.Add( &bmp, RGB(218,224, 242) );
bmp.DeleteObject(); bmp.LoadBitmap( IDB_SKINGRAYTB );
m_DisableImgLst.Create( 16, 16, ILC_COLOR24 | ILC_MASK, 17, 0 );
m_DisableImgLst.Add( &bmp, RGB(218,224, 242) );
bmp.DeleteObject(); CToolBarCtrl& ctrl = m_wndToolBar.GetToolBarCtrl();
ctrl.SetImageList( &m_ImageList );
ctrl.SetDisabledImageList( &m_DisableImgLst );
RGB(218,224, 242)是我加入的位图的背景色。这样加入的图片背景是透明的。我想你可以在加入一个按钮时,获得工具条的CImageList*,然后添加位图时背景设置成要加入的位图的背景(加入Icon后背景会变成什么颜色我就不知道了)。你试试看吧,希望对你有帮助。