大家好,我是 shell 扩展的新手。 我读了http://www.codeproject.com/KB/shell/overlayicon.aspx 文章,并能够在名称包含字符串“sample”的文件上显示叠加图标。 现在我的问题是我有一个应用程序,它根据文件状态显示不同文件的不同叠加层,例如上传、上传、未上传等。 请帮助我如何为系统中特定路径中的特定文件/文件夹设置覆盖。 谢谢
最佳答案
只需应用您在那篇文章中学到的知识。你现在想做的几乎是同一件事。 shell 调用您的处理程序并要求提供覆盖图标。您的代码检查项目的状态,并返回正确的覆盖图标。如果您不拥有该项目,则告诉 shell 根本不要绘制叠加层。
您可以阅读更多关于 Creating Icon Overlay Handlers 的信息在 MSDN 上。
或者,作为 David suggests here和 Richard suggests here ,您可以浏览 TortoiseSVN 源代码(因为它是在 GPL 下获得许可的)以了解他们是如何做到的,如果您更愿意通过示例学习。
但请记住 shell 强加了 a hard limit on the number of overlay icons可以注册。目前,这个数字是 15。如果您的应用程序尝试注册太多,或者如果您的用户安装了其他也注册了覆盖的应用程序(例如 TortoiseSVN),您将遇到问题。您可能需要认真地重新考虑这是否真的是显示信息的合适方式。
关于c++ - 根据状态在不同文件上叠加图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5817380/