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