MFC中,ToolBar上的button绘制图标,默认只支持16色,如果从Icon资源将超过16色的bmp拷贝到ToolBar的button上会出现颜色失真,网上有使用CImageList实现256色工具栏图标的方法,我只是简单地看了看,没有去实现,这里介绍另外一种简单的实现256色工具栏图标的方法:

首先,在设计工具栏按钮功能的时候,我们可以先忽略button的图标,可以先在button上写上文字或者随意画点东西,只要能让自己识别这个button就行;

然后,在编译之后,在工程对应的资源文件夹下面,会有刚才建立的工具栏对应的长条形的bmp,我们假设生成的是view.bmp,这个bmp图片最多只包含了16色;

最后,我们将自己的256色的长条形的bmp拷贝到view.bmp所在的资源文件夹下面,删除原来的view.bmp,将刚才拷贝进来的256色的bmp名字改为view.bmp就大功告成了.

(由于我们的图标都是16*16或者32*32的单个小图标,而前面提到的是将一系列小图标组成的长条形的图标,怎么实现呢?如果你会PS,可以用这个实现,这里给推荐一个小工具MergePic,下载地址)

记得先clean solution,再build solution,再运行,这样就能看到256色的工具栏图标了

关于工具栏button,当鼠标经过时,如果要显示提示信息,可以在button的属性的Prompt尽心设置,例如"\n打开"或者“打开已存在的文件\n打开”,至于这两种写法的区别,可以自己试试看看效果。

这里还有个问题有待解决:怎么将工具栏button上的bmp图片背景设置为透明

8月18日补充

前面留下了两个问题没能顺利解决:

1.工具栏使用32*32的图标,而工具栏对应的菜单项前面的图标显然小于32*32,而当MFC自动关联ID相同的菜单项和工具栏按钮时,会将工具栏上的图标绘制到菜单项前面,当我们使用颜色深度为32位的bmp时,由于工具栏按钮图标大于菜单项需求图标尺寸,会导致菜单项前面的图标显示不完整

解决方案:将工具栏图标保存为24位的bmp,这样MFC能自动将工具栏图标缩小后显示在菜单项前面。这里我用画图工具将bmp另存为24位位图之后,在图片的属性查看位图信息时,仍然显示是32位的,一开始没注意这个问题,耽误了不少时间,后来我先将32位位图保存为png格式,再将png另存为24位bmp,问题解决了;

2.使用1中生成的bmp,显示在软件界面,会发现背景是白色的,看上去不自然,而MFC框架自动生成的"打开、保存“工具栏的背景确是透明的,怎么实现类似的效果呢?

解决方案:利用QQ截屏时显示像素值的功能查看了下MFC自带工具条图标的背景色,也就是常见的那种灰色,RGB值为192,192,192,于是我将图标所有的白色背景利用画图工具改成了RGB(192,192,192),然后重新调试,编译,背景也透明了(估计MFC将RGB(192,192,192)设置为了透明色,猜想)

MFC实现256色工具栏图标及工具栏提示信息相关推荐

  1. MFC下256色BMP位图的保存

    一.BMP位图的文件格式 BMP文件的数据按照从文件头开始的先后顺序分为四个部分: ◆ 位图文件头(bmp file header):  提供文件的格式.大小等信息 ◆ 位图信息头(bitmap in ...

  2. 【MFC】带图标的工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 默认情况下,MFC中提 ...

  3. MFC单文档中,增加,删除 工具栏图标

    mfc单文档中,增加,修改,删除 工具栏图标方法: 首先,说明下,在资源视图中,XXX.rc下有个Toolbar,双击打开,如图所示,toolbar中有IDR_MAINFRAME_256和IDR_MA ...

  4. VC应用 -个性化你的工具栏图标

    1.首先,提供一些最好的图标,大家可以省去自己绘画图标的功夫,可以从繁琐的绘图工作中解脱出来. ToYcon 在线网页转换PNG-ICON http://converticon.com/ 一个非常好的 ...

  5. 工具栏图标背景透明化

    用了一天时间,终于把这个问题解决了.结果是那么的简单.终结原因,还是对MFC不够熟. 我对工具栏图标是这样实现的: 将BMP位图添加到CImageList,然后用ToolBarCtrl.SetImag ...

  6. 【MFC】带下拉菜单的工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 本实例是对工具栏功能的 ...

  7. 【MFC】可调整按钮位置的工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 本实例实现了工具栏上两 ...

  8. 提取 Office 2016 工具栏图标

    Office 图标精美漂亮,作为微软的官方图标,与 Windows 具有一致的风格,但我们若想把这些图标用在自己的程序中,却并不容易,使用常规的提取程序资源的方法,根本得不到这些图标. 微软虽然没有把 ...

  9. 火狐浏览器书签工具栏图标_在Firefox书签工具栏中浓缩书签

    火狐浏览器书签工具栏图标 Do you have a lot of bookmarks and bookmarks folders in your Bookmarks Toolbar and need ...

最新文章

  1. tar.xz、tar.bz2 压缩包解压方式
  2. 大型Web前端架构设计:面向抽象编程入门
  3. 内网PC通过NAT server公网地址访问内部服务器时TCP三次握手不成功
  4. Sql Injection脚本注入终极利用方法
  5. git 拉新项目_git上拉取项目
  6. 数据库:数据库的连接池原理及实现
  7. 差分能量分析介绍(四)
  8. 国庆6.37亿出游花费4665.6亿处于什么水平?哪个省市客流最大?收入最高?
  9. Windows 8 Directx 开发学习笔记(十四)使用几何着色器实现三角形细分
  10. c++小游戏代码(5个) 免费
  11. 推荐几个在线SQL编程的网站,良心!
  12. zigbee终端向多个协调器发起请求的思路(终端入网流程分析)
  13. Word插入打勾复选框
  14. 利用第三方软件识别图片文字并转换为文本
  15. 素数问题与质因子分解
  16. 幽默笑话,隔壁的长舌妇,木子家原创
  17. C++ 引用! 他是坤坤也是鸡哥
  18. hdu1151Air Raid poj2594Treasure Exploration题解
  19. linux php gettext,在Ubuntu上无法获取gettext(php)工作
  20. A星融合DWA的路径规划算法,可实现静态避障碍及动态避障,代码注释详细,matlab源码

热门文章

  1. 唐骏:从小老板到亿万富翁
  2. 全网最详细的2-3树图解
  3. #百知教育 - 刘浩讲师 - 接口
  4. C++ - std::string字符串格式化方法总结
  5. (附源码)springboot健康饮食小程序 毕业设计280920
  6. 域名与IP地址及其映射
  7. 19-Openwrt双固件升级
  8. 自然对数e是干啥的?
  9. 20200104:重温十大排序
  10. mac版oracle数据库10g下载,Oracle 10g之前介质下载地址整理