自己写的程序,如果更换了图标,编译出来,超大图标显示就会发现图标并没有跟着放大。
那么问题来了,就换个图标效果就不同了,很明显时图标有问题。
用eXeScope打开vs2013编译出来的MFC对话框程序可以看到如下图:
这不止一个图标,而我们替换图标之后,编译,打开发现就只有一个图标,因此可以判断的确是ico图标的问题。
在qq群里问了下其他的朋友,有朋友提示ico图标文件可以包含很多组图标,可以是一个集合。
知道这一点很重要,那么只需要重新制作一个ico图标即可。
下载安装IconWorkshop软件
打开一张图片然后点击这里,如下图:
然后如下设置
设置好之后,点击ok,然后Ctrl+S保存即可,这样ico图标集合就制作好了。
然后用这个图标替换,重新编译,刷新一下系统图标缓存,然后改变图标缩放,就可以看到效果了。
“强制刷新图标缓存.bat”内容如下:
rem 关闭Windows外壳程序explorer taskkill /f /im explorer.exe rem 清理系统图标缓存数据库 attrib -h -s -r "%userprofile%\AppData\Local\IconCache.db" del /f "%userprofile%\AppData\Local\IconCache.db" attrib /s /d -h -s -r "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\*" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_32.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_96.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_102.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_256.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_1024.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_idx.db" del /f "%userprofile%\AppData\Local\Microsoft\Windows\Explorer\thumbcache_sr.db" rem 清理 系统托盘记忆的图标 echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v IconStreams echo y|reg delete "HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\CurrentVersion\TrayNotify" /v PastIconsStream rem 重启Windows外壳程序explorer start explorer复制以上内容保存到 强制刷新图标缓存.bat 双击即可刷新系统图标缓存。
最后附一张最终效果图: