与以前的操作系统的CImage限制

许多 CImage 功能仅适用于窗口时使用的新版本:Windows 95 /98 或 Windows NT 4.0 或 Windows 2000。 本文介绍某些方法的版本限制。

CImage::PlgBltCImage::MaskBlt 仅使用 Windows NT 4.0 或更高版本一起使用。 在应用程序将不能在运行 Windows 95 /98 或更高版本的它们。

,因为必须与 msimg32.lib 链接使用这些方法,CImage::AlphaBlendCImage::TransparentBlt 与 Windows 2000 或更高版本以及仅 Windows 98 或更高版本。 (此库到正在运行 Windows 2000 或更高版本以及 Windows 98 或更高版本的应用程序可用。)

在 Windows 95 或 Windows NT 4.0 上运行的应用程序中包含 AlphaBlendTransparentBlt ,只有当这些方法不会调用。 如果应用程序包含这些方法,因此,它在以前的操作系统必须运行,则必须使用链接器的 /delayload 延迟 msimg32.lib 加载。 只要应用程序不调用这些方法之一,当运行在 Windows NT 4.0 或 Windows 95 时,它下都不会尝试加载 msimg32.lib。 您可以检查透明度是否支持可用使用 CImage::IsTransparencySupported 方法。

示例

if (CImage::IsTransparencySupported())
{
   // Safe to call CImage::AlphaBlend and CImage::TransparentBlt
}
else
{
   // Transparency not supported.  Fall back to something else.
}

在 #including 任何系统头文件之前生成调用这些方法的应用程序,插入 #define _WIN32_WINNT 语句,指示的 windows 版本等于或大于 5.0:

#define _WIN32_WINNT 0x0501

如果应用程序在操作系统比 Windows 2000 或 Windows 98 不需要运行旧,您可以直接与 msimg32.lib 链接,而无需使用 /delayload

CImage::Draw 比执行与 Windows NT 4.0 或 Windows 95 的行为不同,当使用 Windows 2000 和 Windows 98。

如果不 0x0500 生成与 _WIN32_WINNT 的应用程序设置为值小于, 翻牌 仍有效,但是,它在运行 Windows 2000 和 Windows 98 的系统自动将不处理透明度和更高版本。

如果生成具有更大的 _WIN32_WINNT 的应用程序设置为 0x0500 或, 翻牌 在运行 Windows 2000 或 Windows 98 的系统自动都会处理透明度和更高版本。 它还,,但,不使用透明度支持,与 Windows NT 4.0 和 Windows 95 一起使用;但是,您必须使用 /delayload 延迟 msimg32.LIB 加载,如上所述 AlphaBlendTransparentBlt的。

请参见

参考

CImage 类