在有关 LoadImage 函数的文档(http://msdn.microsoft.com/en-us/library/windows/desktop/ms648045(v=vs.85).aspx)中警告使用 LR_SHARED 标志:“不要将 LR_SHARED 用于具有非标准尺寸、加载后可能会更改或从文件加载的图像。”
那么图像的标准尺寸究竟是多少?
在有关 LoadImage 函数的文档(http://msdn.microsoft.com/en-us/library/windows/desktop/ms648045(v=vs.85).aspx)中警告使用 LR_SHARED 标志:“不要将 LR_SHARED 用于具有非标准尺寸、加载后可能会更改或从文件加载的图像。”
那么图像的标准尺寸究竟是多少?
我猜想“非标准尺寸”仅适用于图标和光标,但不适用于位图。
CreateCursor的文档说
nWidth 和 nHeight 参数必须指定当前显示驱动程序支持的宽度和高度,因为系统无法创建其他大小的光标。要确定显示驱动程序支持的宽度和高度,请使用 GetSystemMetrics 函数,指定 SM_CXCURSOR 或 SM_CYCURSOR 值。
这同样适用于CreateIcon:
nWidth 和 nHeight 参数必须指定当前显示驱动支持的宽度和高度,因为系统无法创建其他尺寸的图标。要确定显示驱动程序支持的宽度和高度,请使用 GetSystemMetrics 函数,指定 SM_CXICON 或 SM_CYICON 值。
我相信 CreateCursor 和 CreateIcon 的限制也适用于带有 LR_SHARED 的 LoadImage。
顺便说一句,如果您对 MSDN 文档不满意,请使用 MSDN 网页末尾的反馈选项 - 我只是这样做并抱怨限制不明确。