c++ - 根据状态在不同文件上叠加图标

标签 c++ windows icons windows-shell overlays

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

最佳答案

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

您可以阅读更多关于 Creating Icon Overlay Handlers 的信息在 MSDN 上。

或者,作为 David suggests hereRichard suggests here ,您可以浏览 TortoiseSVN 源代码(因为它是在 GPL 下获得许可的)以了解他们是如何做到的,如果您更愿意通过示例学习。

但请记住 shell 强加了 a hard limit on the number of overlay icons可以注册。目前,这个数字是 15。如果您的应用程序尝试注册太多,或者如果您的用户安装了其他也注册了覆盖的应用程序(例如 TortoiseSVN),您将遇到问题。您可能需要认真地重新考虑这是否真的是显示信息的合适方式。

关于c++ - 根据状态在不同文件上叠加图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5817380/

相关文章:

c++ - VisualStudio 2010 和 Visual Studio 2012 的 1 个最新问题

java - setFrameIcon 的动态 ImageIcon 缩减

winapi - 如何在从图标文件生成的 Windows 光标上设置热点坐标?

c++ - 替换 Windows 任务对话框中的文本 “OK” 、 “Cancel” 、 “Yes” 、 “No”

c# - 在 Windows 中捕获 http/https 请求

java - Java 中 Windows NFS 的 Runtime.getRuntime().exec() 问题

java - 为什么 getIcon() 在 setIcon(...) 之后不返回更新的图标?

c++ - Qt:在窗口后面模糊

c++ - 当模态窗口最小化时最小化所有应用程序窗口(在 Linux 上)

c++ - CEF 3 离屏渲染和页面源码