根据状态叠加不同文件上的图标

Asg*_*har 5 c++ windows icons windows-shell overlays

嗨,我是shell扩展的新手.我阅读了http://www.codeproject.com/KB/shell/overlayicon.aspx 文章,并能够在名称中包含字符串"sample"的文件上显示叠加图标.现在我的问题是我有一个应用程序,根据文件状态显示不同文件的不同叠加,如上传,上传,未上传等.请帮助我如何为特定路径中的特定文件/文件夹设置叠加系统.谢谢

Cod*_*ray 3

只需应用您在那篇文章中学到的知识即可。你现在想做的几乎是同样的事情。shell 调用您的处理程序并请求覆盖图标。您的代码检查项目的状态,并返回正确的覆盖图标。如果您不拥有该项目,则可以告诉 shell 根本不要绘制覆盖层。

您可以在 MSDN 上阅读有关创建图标叠加处理程序的更多信息。

或者,正如David 在这里建议的Richard 在这里建议的,如果您喜欢通过示例学习,您可以浏览 TortoiseSVN 源代码(因为它是根据 GPL 授权的)来了解他们是如何做到的。

但请记住,shell对可以注册的覆盖图标的数量施加了硬性限制。目前,该数字为 15。如果您的应用程序尝试注册太多,或者您的用户安装了其他也注册了覆盖的应用程序(例如 TortoiseSVN),您将遇到问题。您可能需要认真重新考虑这是否真的是显示信息的适当方式。