MFC实现256色工具栏图标及工具栏提示信息
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色工具栏图标及工具栏提示信息相关推荐
- MFC下256色BMP位图的保存
一.BMP位图的文件格式 BMP文件的数据按照从文件头开始的先后顺序分为四个部分: ◆ 位图文件头(bmp file header): 提供文件的格式.大小等信息 ◆ 位图信息头(bitmap in ...
- 【MFC】带图标的工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 默认情况下,MFC中提 ...
- MFC单文档中,增加,删除 工具栏图标
mfc单文档中,增加,修改,删除 工具栏图标方法: 首先,说明下,在资源视图中,XXX.rc下有个Toolbar,双击打开,如图所示,toolbar中有IDR_MAINFRAME_256和IDR_MA ...
- VC应用 -个性化你的工具栏图标
1.首先,提供一些最好的图标,大家可以省去自己绘画图标的功夫,可以从繁琐的绘图工作中解脱出来. ToYcon 在线网页转换PNG-ICON http://converticon.com/ 一个非常好的 ...
- 工具栏图标背景透明化
用了一天时间,终于把这个问题解决了.结果是那么的简单.终结原因,还是对MFC不够熟. 我对工具栏图标是这样实现的: 将BMP位图添加到CImageList,然后用ToolBarCtrl.SetImag ...
- 【MFC】带下拉菜单的工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 本实例是对工具栏功能的 ...
- 【MFC】可调整按钮位置的工具栏
00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 本实例实现了工具栏上两 ...
- 提取 Office 2016 工具栏图标
Office 图标精美漂亮,作为微软的官方图标,与 Windows 具有一致的风格,但我们若想把这些图标用在自己的程序中,却并不容易,使用常规的提取程序资源的方法,根本得不到这些图标. 微软虽然没有把 ...
- 火狐浏览器书签工具栏图标_在Firefox书签工具栏中浓缩书签
火狐浏览器书签工具栏图标 Do you have a lot of bookmarks and bookmarks folders in your Bookmarks Toolbar and need ...
最新文章
- tar.xz、tar.bz2 压缩包解压方式
- 大型Web前端架构设计:面向抽象编程入门
- 内网PC通过NAT server公网地址访问内部服务器时TCP三次握手不成功
- Sql Injection脚本注入终极利用方法
- git 拉新项目_git上拉取项目
- 数据库:数据库的连接池原理及实现
- 差分能量分析介绍(四)
- 国庆6.37亿出游花费4665.6亿处于什么水平?哪个省市客流最大?收入最高?
- Windows 8 Directx 开发学习笔记(十四)使用几何着色器实现三角形细分
- c++小游戏代码(5个) 免费
- 推荐几个在线SQL编程的网站,良心!
- zigbee终端向多个协调器发起请求的思路(终端入网流程分析)
- Word插入打勾复选框
- 利用第三方软件识别图片文字并转换为文本
- 素数问题与质因子分解
- 幽默笑话,隔壁的长舌妇,木子家原创
- C++ 引用! 他是坤坤也是鸡哥
- hdu1151Air Raid poj2594Treasure Exploration题解
- linux php gettext,在Ubuntu上无法获取gettext(php)工作
- A星融合DWA的路径规划算法,可实现静态避障碍及动态避障,代码注释详细,matlab源码