【发布时间】:2020-09-11 13:19:29
【问题描述】:
大多数操作系统倾向于使用一组通用的“库存”图标来指示“警告”、“错误”和其他状态。我们大多数人都知道我们不应该 grovel into undocumented resources 并在我们的应用程序中使用它们。
但是,在 GTK 中,可以检索这些图标,因为该工具包提供了记录的 API 来执行此操作。在 Windows 中,虽然可能从适当的 DLL 中提取一组有限的图标,但这是未记录的,并且不保证在未来的 Windows 版本中工作。 API 提供的图标是合约;存储在 DLL 中的图标是一个实现细节。
是否有任何 Windows(或 .NET 4)API 函数来检索“股票图标”?我知道对于文件关联,可以通过注册表找到 DefaultIcon 条目,但是这个不会考虑自定义图标处理程序,并且它不是其他库存图标的解决方案,例如警告或错误消息框中使用的图标。
如果没有这样的功能,在我的应用程序中使用这些图标最适合未来的方式是什么?还是我只需要自己完成所有工作并担心 Microsoft 在未来版本的 Windows 中更改实现细节?
【问题讨论】:
-
SHGetStockIconInfo? docs.microsoft.com/en-us/windows/win32/api/shellapi/…
-
@SimonMourier 仅适用于 Shell 图标,我认为这里不会涉及这些图标。
-
哦……哇。我不知道这个功能甚至存在。 +1!我可能在这里吹毛求疵,我更喜欢可以追溯到 Windows XP 的解决方案……但我可以接受。这正是我想要的。
-
@MarkRansom - 好吧,这是 Windows Shell 官方库存图标。它有警告、错误等。没有外壳的图标会是什么?
-
@slickdeveloper 这个SO question,几个月前我问过,相关的答案也可能很有趣。