在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,cyLR_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树控件实现

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

MFC应用真彩色图标资源相关推荐

  1. [VC]基于对话框程序,自定义工具栏(支持真彩色图标,可添加文字)

    转载自 ewook 最终编辑 ewook 应该是一个老生常谈的问题了,仍然决定写一写的原因是:在网上搜一搜,讲得有效易懂的还真没发现(可能是大虾们都懒得去写...) 动机:传统的VC工具栏只支持16色 ...

  2. Toolbar控件:32位真彩色大图标

    一.创建普通toolbar 1.         新建一MFC程序,在Dlg头文件中添加一个CToolBar类的成员变量CToolBar m_Toolbar; 2.         然后在头文件中定义 ...

  3. VC 在经典 MFC 框架下使用真彩色工具栏

    VS2008 sp1 以后有了 BCG 的包,可以使用 CMFCToolbar 来加载真彩色工具栏.但是在经典 MFC 框架下,默认还只是 16 色的工具栏,通过下面的方法就可以加载真彩工具栏了.直接 ...

  4. 使用VS2010的CMFCToolbar实现真彩色工具栏

    从VC2008的SP1开始,新加入了很多MFC控件,其界面效果虽然比不上WPF,但与之前的控件相比,也已经是飞越了.无奈目前大家对它的研究还是比较少,虽然自带了一些示例程序,仍然不能满足开发的方方面面 ...

  5. 调色板,真彩色,DDB,DIB,BMP,RGB,YUV

    调色板 我们知道,自然界中的所有颜色都可以由红.绿.蓝(R,G,B)组合而成.有的颜色含有红色成分多一些,如深红:有的含有红色成分少一些,如浅红.针对含有红色成分的多少,可以分成0到255共256个等 ...

  6. 把svg图标制作成字体图标_让我们用SVG符号和CSS变量制作彩色图标

    把svg图标制作成字体图标 by Sarah Dayan 通过莎拉·达扬 让我们用SVG符号和CSS变量制作彩色图标 (Let's make multi-colored icons with SVG ...

  7. vue引入阿里巴巴图标(含彩色图标)

    第一步:下载阿里巴巴图标库的资源到本地. 第二步:在自己的assets创建一个icon文件,然后把下载的东西选择放进去. 第三步:在main.js引入 import './assets/icon/ic ...

  8. MFC之按钮添加图标

    MFC之按钮添加图标 一.在资源编辑器中添加一个按钮,把它的Bitmap属性设为true 二.在按钮上点右键,添加一个变量m_Btn(CButton类型的) 三.将图片导入到资源管理器中,ID为IDB ...

  9. MFC-Toolbar(24位真彩色)

    先准备一个24位的真彩色工具栏BMP图片 如图所示: 然后添加到Bitmap资源里 接着上一篇16位工具栏的代码,进行稍微修改即可 //创建Toolbarm_toolbar.CreateEx(this ...

最新文章

  1. 时空AI技术:深度强化学习在智能城市领域应时空AI技术:深度强化学习在智能城市领域应用介绍...
  2. 字体中字号,磅值和mm之间的转换
  3. HarmonyOS之AI能力·分词
  4. Android中最详细的焦点问题,从概念出发带你一点点分享(1)
  5. linux实验目的能学会什么意思,Linux实验.doc
  6. gojs实现最短路径寻址实例
  7. MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))[MySQL插入内容超过4M]
  8. 梯度下降法快速教程 | 第一章:Python简易实现以及对学习率的探讨
  9. 【Kubernetes】Error: Cask minikube is unavailable No Cask with this name exists
  10. pycharm 设置虚拟工作空间_七、连Pycharm都不知道怎么用,学什么Python
  11. 网站运维都需要做什么工作
  12. sql 时间查询 /sql中判断更新或者插入/查询一年所有双休日
  13. devise的使用的中文教程
  14. 对接圆通查询物流信息
  15. 李智慧-我的全栈之路导师之一
  16. java 图片 变黑_JAVA 压缩图片导致背景变黑
  17. idea上传写好的springboot项目到码市coding
  18. 腾讯笔试编程题,贪吃的小Q(二分查找)
  19. 微信支付-企业付款到零钱问题集锦
  20. GLES2.0中文API-glBlendFuncSeparate

热门文章

  1. 高一计算机计算器,上了高一 赶紧扔了计算器吧!
  2. windows server 2016 活动目录部署系列(四)资源的权限分配
  3. springboot邮件发送以及thyemleaf生成邮件模板
  4. 产业互联网下半场,SaaS平台的机遇与挑战
  5. android i18n,Android i18n 国际化
  6. stdcall和cdecl
  7. 使用LabVIEW 开发远程电子工程实验课
  8. 淘宝运营去哪里学,可以自学吗
  9. 全场景智慧:新工业革命必须拥抱的晨曦
  10. 卡迪夫大数据专业排名_英国:大数据专业哪家强