MFC应用真彩色图标资源

在MFC编程的过程中,我们经常会使用icon和bitmap,例如:给树节点加上一个图标,工具条,按钮上放置一个图片等。

但VC的资源编辑器是不支持真彩色图标。为了能制作真彩色图标,需要如下三步:

(1)使用其他图像处理工具(例如PS)制作真彩色ICO/BMP

(2)将ICO/BMP作为资源加入到VC中,并为其设置一个ID号

(3)使用CImageList将这些资源加载到内存以供树、工具条、按钮等使用,细节如下 【关键】

// 注:CImageList m_imgList;
//    CTreeCtrl m_wndLayerTree;
// ----------------------------------------------------------
HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
        MAKEINTRESOURCE(IDB_BITMAP_LIST),
        IMAGE_BITMAP, //按位图格式
         0,0, // cx,cy
        LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );
      
CBitmap bm;
bm.Attach(hbm);
// 使用ILC_MASK开启透明处理
m_imgList.Create(16,16,ILC_COLOR24 | ILC_MASK,21,1);
// 透明色设为 RGB(192,192,192)
m_imgList.Add(&bm, RGB(192,192,192));

m_wndLayerTree.SetImageList(&m_imgList,TVSIL_NORMAL);

效果见:Radio/Check混合MFC树控件实现 

扩展阅读:一步步制作真彩工具条

原文地址:https://www.cnblogs.com/kekec/p/2299784.html