描述:
我在codeproject上看到一个程序,实现的是在文件或文件夹图标的右下角加一个自定义的小图标,我在这个的基础上进行了修改,让程序根据需要添加或删除右下角小图标,打开资源管理器后,添加图标,刷新,左右两侧都能看到已经添加了自定义的小图标,但是,删除的时候,虽然也刷新了,右侧文件夹上的小图标删除了,而左侧的却没有删除,按F5也不管用,除非关了资源管理器重新打开,才能看到自定义的小图标已经被删除了,我使用的是SHChangeNotify,参数SHCNE_UPDATEDIR,想请前辈指点一二,不胜感激。
解决方案1:
You can force Windows to erase and reload all system icons by temporarily changing the icon size used by the system, and then changing it back to its original value. After each change, use the SendMessageTimeout API function to tell all running applications there has been a change in the system's metrics.
http://msdn.microsoft.com/en-us/library/aa155700(office.10).aspx
三问文件夹选项更改后刷新的问题
http://topic.csdn.net/u/20081121/11/f5034a2f-26ae-4f74-a357-1fbd33576883.html
//试试这样行不行。
::SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)TEXT("ShellState"), SMTO_ABORTIFHUNG, 3000, NULL);
::SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
参数用SHCNE_UPDATEIMAGE试试。
解决方案4: wEventId
都试试。