mfc界面修改真难受
使用CTreeCtrl 进行设置导航视图时,有时候需要设置图标,一般使用如下代码
m_TreeViewImages.DeleteImageList();
UINT uiBmpId = IDB_ICONLIST_TREE;
CBitmap bmp;
if (!bmp.LoadBitmap(uiBmpId)) return;
BITMAP bmpObj;
bmp.GetBitmap(&bmpObj);
UINT nFlags = ILC_MASK;
nFlags |= ILC_COLOR24;
m_TreeViewImages.Create(20, 20, nFlags, 0, 0);
m_TreeViewImages.Add(&bmp, RGB(255, 0, 255));
SetImageList(&m_TreeViewImages, TVSIL_NORMAL);
如果图标资源是PNG格式,也可以使用
CPngImage image;
image.Load(IDB_PNG1, nullptr);
来加载png图像
但是注意有个坑,虽然图像位数没有限制,创建图像列表时,也有ILC_COLOR32类型可供选择,但是软件实际只能显示出24位效果。(也可能有其他原因导致,但是目前没找到原因)
如果使用了32位图像,效果看运气
所以最好添加时,直接使用24位。