图标的加载方案

时间:2008-10-31 18:37:38

标签: architecture icons

为应用程序加载图标的最佳方案是什么?

一点背景......我正在创建一个类似FTP的应用程序,它有4个窗格(本地文件夹窗格,本地文件窗格,云文件夹窗格,云文件窗格)。在两个文件窗格中,其中一列是文件名,我想在旁边显示图标(就像在Windows资源管理器中看到的那样)。

事实上,我没有云中所有文件的物理文件,我必须进入注册表(手头有文件扩展名)并获取该文件类型的ExeFileName和IconIndex组合,并从在那里检索图标。也就是说,我认为我有以下选项,并希望得到你的意见:

1)在程序加载时为每个扩展(EG:.doc,.txt)加载所有ExeFileName / IconIndex组合,并根据需要查询并使用它们调用ExtractIcon Win32 API。

2)仅在需要获取ExeFileName / IconIndex组合时调用注册表,并调用ExtractIcon Win32 API以获取相关文件类型的图标。

3)将已知的每个扩展名的1个字节的文件保存到目录,然后调用SHGetFileInfo Win32 API并在需要时从文件中提取相关的图标。

4)将安装时每个文件扩展名的物理图标文件保存到目录中,并在需要时调用此文件(但不会随文件关联更改,添加或删除而更改)。

5)垃圾全部并从已知前1000个图标文件类型的图标商店购买一组图标,并显示其他文件类型的未知图标类型。

感谢您的时间和意见。

-Jessy Houle

1 个答案:

答案 0 :(得分:1)

我认为选项2听起来最合理,只要你缓存结果,所以你只查询一次给定的文件类型,即使有很多这种类型的文件。

我认为选项4& 5,因为它们不会反映关联的变化。如果您的应用中的图标与Windows资源管理器不同,这可能会使用户感到困惑。

选项1& 3看起来像是矫枉过正,特别是因为你很可能会多次展示最常见的图标,也许永远不会显示更加模糊的图标。