我想请问下VC工具条位图透明怎么弄~?

来源:百度知道 编辑:UC知道 时间:2024/06/30 20:29:26
我在工具条加了48*48的图,可是工具条位图并不透明,代码如下.
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
CBitmap m_bmp;
m_bmp.Attach(::LoadImage(AfxGetResourceHandle(),"list_hot",IMAGE_BITMAP,0, 0,LR_DEFAULTSIZE|LR_CREATEDIBSECTION));
m_NormalList.Create(48,48,ILC_COLOR24|ILC_MASK, 0, 0);
m_NormalList.Add(&m_bmp,RGB(212,202,200)) ;
m_bmp.Detach();
m_wndToolBar.SendMessage(TB_SETIMAGELIST,0,(LPARAM)m_NormalList.m_hImageList);
m_bmp.Attach(::LoadImage(AfxGetResourceHandle(), "list_normal",IMAGE_BITMAP,
0, 0,LR_DEFAULTSIZE|LR_CREATEDIBSECTION));
m_hotList.Create(48, 48, ILC_COLOR24|ILC_MASK, 0, 0);
m_hotList.Add(&m_bmp,RGB(212,202,200)) ;
m_bmp.Detach();
m_wndToolBar.SendMessage(TB_SETHOTIMAGELIST,0,(LPARAM)m_hotList.m_hImageList);

m_bmp.Attach(::LoadImage(AfxGetResourceHandle(), "list_disable",IMAGE_BITMAP,
0, 0,LR_DEFAULTSIZE|LR_CREATED

我用过的一个, 你参考下吧
void CMainFrame::SetToolBar()
{
// 加载工具栏位图 - 必须使用::LoadImage映射颜色
// 将(192,192,192) 映射到 COLOR_3DFACE.
//
COLORREF clf = m_wndToolBar.GetDC()->GetPixel(CPoint(0,0));
HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME),
IMAGE_BITMAP,
0,0, // cx,cy
LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );
CBitmap bm;
bm.Attach(hbm);

// 创建图像清单并设置工具栏,// 256色使用ILC_COLOR8
m_imgToolBar.Create(24,24, ILC_COLOR32|ILC_MASK, 4, 4);
//m_imgToolBar.Add(&bm,(CBitmap*)NULL);
m_imgToolBar.Add(&bm,RGB(202,202,202));
//m_imgToolBar.Add(&bm,clf);
m_wndToolBar.GetToolBarCtrl().SetImageList(&m_imgToolBar);

}