要点:
1、制作多分辨率ICON文件
2、清空图标缓存,使图标文件生效
自己写的程序,如果更换了图标,编译出来,超大图标显示就会发现图标并没有跟着放大。
那么问题来了,就换个图标效果就不同了,很明显时图标有问题。
用eXeScope打开vs2013编译出来的MFC对话框程序可以看到如下图:
这不止一个图标,而我们替换图标之后,编译,打开发现就只有一个图标,因此可以判断的确是ico图标的问题。
在qq群里问了下其他的朋友,有朋友提示ico图标文件可以包含很多组图标,可以是一个集合。
知道这一点很重要,那么只需要重新制作一个ico图标即可。
下载安装IconWorkshop软件
打开一张图片然后点击这里,如下图:
然后如下设置
设置好之后,点击ok,然后Ctrl+S保存即可,这样ico图标集合就制作好了。
然后用这个图标替换,重新编译,刷新一下系统图标缓存,然后改变图标缩放,就可以看到效果了。
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 双击即可刷新系统图标缓存。
最后附一张最终效果图: