Win32 替换应用程序图标
最近在写项目的时候,需要加载指定的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。
在开发应用程序时,一般都会替换系统生成的图标,这些图标包括三个地方所显示的:任务栏,标题栏和程序图标。这些图标之中又分大图标,小图标。
一般情况下,在任务栏上显示的是大图标,标题栏上面显示的是小图标。在当应用程序放在文件夹下面所显示的图标,既可以小图标,也可以是大图标,用户可以设置 (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。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Java之流水号生成器
- 下一篇: java 随机生成名字