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 映像标识符之一结合使用。 这些标识符具有以下前缀。

Value 含义
OEM 位图的OBM_
OEM 图标的OIC_
OEM 游标的OCR_

cx

类型: int

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

cGrow

类型: int

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

crMask

类型: COLORREF

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

uType

类型: UINT

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

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

uFlags

类型: UINT

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

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

Dk 灰色:RGB (128、128、128) COLOR_3DSHADOW

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

Lt 灰色: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 [仅限桌面应用]
目标平台 Windows
标头 commctrl.h
Library Comctl32.lib
DLL Comctl32.dll

另请参阅

LoadImage