ImageList_LoadImageA函数 (commctrl.h)

从指定的位图创建图像列表。

语法

HIMAGELIST ImageList_LoadImageA(
  HINSTANCE hi,
  LPCSTR    lpbmp,
  int       cx,
  int       cGrow,
  COLORREF  crMask,
  UINT      uType,
  UINT      uFlags
);

参数

hi

类型:HINSTANCE

包含资源的实例的句柄。 如果要从文件加载映像或加载 OEM 资源,则可以 NULL 此参数。

lpbmp

类型:LPCTSTR

要加载的图像。

如果 uFlags 参数包含LR_LOADFROMFILE,则 lpbmp 是一个以 null 结尾的字符串的地址,用于命名包含要加载的图像的文件。

如果未指定 hi 参数为非NULL 且未指定LR_LOADFROMFILE,则 lpbmp 是包含 hi 模块中图像资源名称的 null 终止字符串的地址。

如果未指定 hiNULL 且未指定LR_LOADFROMFILE,则此参数的 LOWORD 必须是要加载的 OEM 映像的标识符。 若要创建此值,请使用 MAKEINTRESOURCE 宏和 Winuser.h 中定义的 OEM 映像标识符之一。 这些标识符具有以下前缀。

价值 意义
OEM 位图 的 OBM_
OEM 图标 OIC_
OEM 游标 OCR_

cx

类型:int

每个图像的宽度。 每个图像的高度和初始图像数由指定资源的尺寸推断。

cGrow

类型:int

当系统需要为新映像腾出空间时,映像列表可以增长的图像数。 此参数表示重设大小的图像列表可以包含的新图像数。

crMask

类型:COLORREF

用于生成掩码的颜色。 指定位图、光标或图标中此颜色的每个像素都更改为黑色,掩码中的相应位设置为 1。 如果此参数是CLR_NONE值,则不生成掩码。 如果此参数是CLR_DEFAULT值,则图像左上角的像素颜色被视为掩码颜色。

uType

类型:UINT

指定要加载的图像类型的标志。 此参数必须IMAGE_BITMAP,以指示正在加载位图。

注释ImageList_LoadImage 仅用于位图文件。 不支持其他图像类型。
 
价值 意义
IMAGE_BITMAP
加载位图。

uFlags

类型:UINT

指定如何加载映像的标志。 此参数可以是以下值的组合。

价值 意义
LR_CREATEDIBSECTION
uType 参数指定IMAGE_BITMAP时,函数返回 DIB 节位图而不是兼容的位图。 LR_CREATEDIBSECTION可用于加载位图而不将其映射到显示设备的颜色。
LR_DEFAULTCOLOR
使用显示器的颜色格式。
LR_DEFAULTSIZE
如果将 cx 参数设置为零,则使用由光标和图标的系统指标值指定的宽度或高度。 如果未指定此值,并且 cx 设置为零,则函数会将大小设置为资源中指定的值。 如果资源包含多个图像,该函数会将第一个图像的大小设置为该图像的大小。
LR_LOADFROMFILE
lpbmp 参数指定的文件中加载映像。
LR_LOADMAP3DCOLORS
在颜色表中搜索图像,并将以下灰色底纹替换为相应的三维颜色:

Dk Gray:RGB(128、128、128)COLOR_3DSHADOW

灰色:RGB(192、192、192)COLOR_3DFACE

Lt Gray:RGB(223、223、223)COLOR_3DLIGHT

有关详细信息,请参阅“备注”部分。

LR_LOADTRANSPARENT
检索图像中第一个像素的颜色值,并将颜色表中的相应条目替换为默认窗口颜色(COLOR_WINDOW显示颜色)。 使用该颜色的图像中的所有像素都将成为默认窗口值颜色。 此值仅适用于具有相应颜色表的图像。 有关详细信息,请参阅“备注”部分。
LR_MONOCHROME
以黑白模式加载图像。
LR_SHARED
如果多次加载映像,则共享映像句柄。 不要对加载后可能更改的非传统大小的图像使用此值,也不要对从文件加载的图像使用此值。

返回值

类型:HIMAGELIST

如果成功,则返回图像列表的句柄,否则 NULL

言论

LR_LOADTRANSPARENT不会以透明方式加载图像。 它创建仅显示为透明的不透明图像列表,因为所有背景像素都已更改为COLOR_WINDOW。 如果图像在不是颜色COLOR_WINDOW的背景上绘制,则图像无法正确绘制。 此外,LR_LOADTRANSPARENT和LR_LOADMAP3DCOLORS使用在调用 ImageList_LoadImage 时生效的系统颜色。 如果系统颜色随后发生更改,应用程序必须重新加载图像以重新映射颜色。

注意

commctrl.h 标头将ImageList_LoadImage定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 [仅限桌面应用]
目标平台 窗户
标头 commctrl.h
Comctl32.lib
DLL Comctl32.dll

另请参阅

LoadImage