告别图标失真的烦恼

2016-01-29 12:04 38 1 收藏

告别图标失真的烦恼,告别图标失真的烦恼

【 tulaoshi.com - C语言心得技巧 】

告别图标失真的烦恼
作者:李晓飞

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

下载本文示例代码


示例代码运行效果图

自从和VC知识库认识之后我认识了不少朋友,有的象我一样走着苦苦探索的道路。其中有很多朋友问我在VC中如何保证256色以上的图标加载后不失真。根据这些提问我也曾经到各个站点上寻求答案,结果是大失所望,虽然有介绍如何实现256色以上的工具栏的文章,但是方法中大都采用加载一幅256色以上的工具栏位图的方法。这样的方法存在一个麻烦就是:有什么简便好用的制图工具来做这样的位图呢?我虽然没有尝试过去寻找这样的工具,但是我知道大家都希望有更直接的方法来使用256色以上的图标,并且保持最终的效果不失真!

所以针对以上问题我研究了MSDN,费了九牛二虎的劲最终才"修成正果",哈哈!不过有快乐得和大家一起分享,希望我的努力没有白费,好了,废话少说,咱们立刻揭开它神秘的面纱吧。

一. 建立一个单文档工程(多文档也可)。
二. 在主框架CMainFrame类的头中定义一个CImageList对象。
三. 在主框架CMainFrame类的OnCreate处理中创建CImageList对象并且向其中添加你想要的图标。

其中CImageList的创建是本工程最最关键的一步,如果写错,那你就回到原处,结果是空空如也。哈哈!

m_ilTB.Create(32, 32, TRUE | ILC_COLOR8, 4, 0); //设置ToolBar的图标列表
现在对这几个参数做个详细介绍如下:
1. 前两个参数指定图标的宽度和高度,即:图标的尺寸定义。
2. 第三个参数指定何如显示图标。ILC_ COLOR8说明以256色调色板来显示图标。而TRUE则指明了以透明方式来显示图标。那么两者进行"按位或"运算后的意义变为:以透明方式来显示256色图标。
3. 第四和第五个参数则分别为:初始图标个数和新增图标时对象自动申请内存空间的步长。如果在大批量操作图标,并且需要不断的增删图标时,设置第五个参数可以改变程序的性能,如果第五个参数设置的比较适中则可以避免程序反复的申请和释放内存空间。

四. 最后的一步就是加载和添加图标资源了。
HICON hIcon = NULL;hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 32, 32, 0);m_ilTB.Add(hIcon);
好了,一切就是这么简单,如果你还不清楚的话,那就打开工程看看吧,如你有什么问题也不要忘记来信告诉我哦!最后祝大家学习愉快,多多交流,多多进步,一切顺利!

来源:http://www.tulaoshi.com/n/20160129/1484501.html

延伸阅读
你有脚臭吗?相信很多人被问这个问题的时候,都会流露出尴尬的神色。其主要因为有脚臭,会让人很尴尬。那有脚臭应该怎么治呢?治疗脚臭的方法有哪些呢?脚臭又应该怎么办呢?今天图老师小编就来为大家一一介绍一下。想知道的朋友不妨就来看一下吧。 怎样治脚臭 在我们生活中,十有七八都是有脚臭的。那有脚臭的话,应该怎么治呢?...
激光脱毛 疼痛指数:2级 现在最新的激光脱毛技术是使用半导体冰点无痛脱毛激光仪,也就是俗称的冰点脱毛。半导体冰点脱毛依赖于选择性的光热作用原理,使毛囊部位产生高热量,从而破坏毛囊的结构,达到脱毛目的。 适用部位:激光脱毛特别适合肤色浅,毛发较细且黑的人,全身各部位多余的黑色毛发都适用。 缺点:肤颜色...
标签: 食疗养生
现代人生活压力大,导致脱发,而且脱发的现象越来越年轻化,越来越普遍,脱发的原因虽然很多,但是大体的都是食物营养不均衡导致的脱发,那么大家知道脱发吃什么好吗?脱发不能吃什么食物呢?下面图老师小编就为大家介绍一下治疗脱发的食疗方法吧。 脱发吃什么效果好呢?下面这个偏方治疗脱发效果非常的棒,而且安全健康,大家不妨试试...
减肥主要靠改变不健康的生活习惯,下面图老师生活介绍几个生活中减肥的好习惯给大家,或许,不知不觉中你每天都在瘦。 养成生活好习惯,让你轻松告别肥胖的烦恼 六大生活好习惯让你告别肥胖的烦恼: 1、 吃饭只吃八成饱 我们总是难以抵住美食诱惑,明明已经吃饱了,可是还是舍不得放弃。特别是家庭妇女,还会觉得那东...
标签: 化妆
眼袋一般常见于35岁后的MM,但是现在大部分MM由于长期面对电脑,眼部干燥缺水,不少年轻MM也容易在双眼下方出现眼袋。试试有趣的障眼法,也能让“小丘”变“平原”。 STEP 1、涂抹乳液 在眼部涂一层薄薄的乳液以便充分吸收遮瑕膏。 STEP 2、涂抹遮瑕膏 要在乳液吸收后,涂抹薄...

经验教程

155

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部