牛骨文教育服务平台(让学习变的简单)
博文笔记

Win32 替换应用程序图标

创建时间:2012-04-21 投稿人: 浏览次数:2527
最近在写项目的时候,需要加载指定的ICON,而编译出来的程序的图标总不是我所期望的,而运行起来程序的图标也是正确(期望)的,觉得很是奇怪,在网上查了下,终于找到原因。文章摘自http://blog.sina.com.cn/s/blog_5f8817250100uizy.html。

       在开发应用程序时,一般都会替换系统生成的图标,这些图标包括三个地方所显示的:任务栏,标题栏和程序图标。这些图标之中又分大图标,小图标。

       一般情况下,在任务栏上显示的是大图标,标题栏上面显示的是小图标。在当应用程序放在文件夹下面所显示的图标,既可以小图标,也可以是大图标,用户可以设置 (Ctrl + 鼠标滚轮)。

       任务栏图标与标题栏图标都要以在程序运行起来后进行设置,而应用程序图标则是在编译时决定的。系统是怎么决定显示什么图标的呢?据我的观察,其实很简单,它是依据ICON资源的ID的大小来决定的。

       比如说,我这程序有三个图标,
       
       error.ico对应的ID是:#define IDI_ERROR_MSG             109
       SampleCryptTool.ico对应的ID是:#define IDI_ERROR_MSG             107
       small.ico对应的ID是:#define IDI_ERROR_MSG             108

       那么,这样的ID值,程序在编译时,就会用SampleCryptTool.ico作为程序的图标。因为它的ID值是107,最小的。
       
      
       此时,如果我把error.ico的ID改为107,SampleCryptTool.ico的ID改为109,那么根据上面说的原则,程序的图标就会变成error.ico。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。