【发布时间】:2013-12-22 20:42:16
【问题描述】:
是否有一个 Win32 API 来构造一个 HICON 句柄,该句柄包含来自存储在内存中的像素数据的多种大小的图标?我知道我可以使用 CreateIconIndirect() 从内存像素数据构造单个图标,但这些图标将始终只包含一个尺寸,但我想构建一个包含 16x16、24x24、32x32、48x48 和 256x256 图标的单个 HICON 句柄,以用于RegisterClassEx()。
我知道我可以简单地使用资源图标或加载外部 *.ico,但这对于我的具体情况来说是不可能的。我需要能够从内存像素数据构造这个多图像 HICON。
我想到的唯一解决方案是在磁盘上创建一个临时 *.ico 文件,然后使用 LoadIcon() 加载它,但这不是一个好的解决方案。
这就是为什么我想问是否有API可以从内存像素数据构造多图像HICON?
谢谢!
【问题讨论】:
-
为什么你认为HICON包含所有图标?
-
因为 RegisterClassEx() 只从我那里得到一个 HICON 句柄,并且 Windows 仍然根据上下文为我的应用程序使用不同的图标(任务栏图标、标签循环图标、窗口边框图标......)。 Windows 似乎从我传递给 RegisterClassEx() 的单个 HICON 句柄中获得了这一切,因此其中必须有多个图像。
-
没有 WNDCLASSEX 使用两个 hicon - 正常和小。
-
@会看到什么?我写的和大卫一模一样。
-
从资源 remember what resource they came from 创建的图标,如果需要调整大小,可以返回到原始资源。从记忆中创建的图标无处可去。