VS2010 动态创建工具栏,bitmap不透明的问题
编译环境:Visual Studio 2010, MFC;
应用场景:动态创建工具栏,工具栏图标:16×16,24位的bitmap。
在程序中,我将分散的图标添加到 CMFCToolBarImages 的对象中,源代码如下:
// Load bitmap
if( CMFCToolBar::GetUserImages() == NULL )
{
// load user-defined toolbar images
for( int i = IDB_MENU_NEW; i <= IDB_MENU_ABOUT; i++ )
{
CBitmap bitmap;
if( bitmap.LoadBitmapW( i ))
{
if( -1 == m_UserImages.AddImage( (HBITMAP)bitmap.GetSafeHandle()))
{
bitmap.DeleteObject();
break;
}
}
}
m_UserImages.SetTransparentColor( RGB(255,0,255)); // 透明色
CMFCToolBar::SetUserImages(&m_UserImages);
}
运行程序时,发现图标的背景色并没有被透明掉,我目前知道的是 bitmap图片是不支持透明的,不知道CMFCToolBarImages::SetTransparentColor 这个函数适用于哪种图片格式,是否支持bitmap格式的图片?如果支持的话,我的程序存应该如何修改呢?
请高手指教一下,多谢啦