ImageList_DrawEx 函数 (commctrl.h)

在指定的设备上下文中绘制图像列表项。 该函数使用指定的绘图样式,并将图像与指定颜色混合。

语法

BOOL ImageList_DrawEx(
  HIMAGELIST himl,
  int        i,
  HDC        hdcDst,
  int        x,
  int        y,
  int        dx,
  int        dy,
  COLORREF   rgbBk,
  COLORREF   rgbFg,
  UINT       fStyle
);

参数

himl

类型: HIMAGELIST

图像列表的句柄

i

类型: int

要绘制的图像的索引。

hdcDst

类型: HDC

目标设备上下文的句柄。

x

类型: int

在指定设备上下文中绘制的 x 坐标。

y

类型: int

在指定的设备上下文中绘制的 y 坐标。

dx

类型: int

要绘制的图像部分相对于图像左上角的宽度。 如果 dxdy 为零,函数将绘制整个图像。 函数不确保参数有效。

dy

类型: int

要绘制的图像部分的高度,相对于图像的左上角。 如果 dxdy 为零,函数将绘制整个图像。 函数不确保参数有效。

rgbBk

类型: COLORREF

图像的背景色。 此参数可以是应用程序定义的 RGB 值或以下值之一:

含义
CLR_NONE
无背景色。 以透明方式绘制图像。
CLR_DEFAULT
默认背景色。 使用图像列表的背景色绘制图像。

rgbFg

类型: COLORREF

图像的前景色。 此参数可以是应用程序定义的 RGB 值或以下值之一:

含义
CLR_NONE
无混合颜色。 图像与目标设备上下文的颜色混合。
CLR_DEFAULT
默认的前景色。 使用系统突出显示颜色作为前景颜色绘制图像。

fStyle

类型: UINT

绘图样式和(可选)覆盖图像。 有关指定覆盖图像索引的信息,请参阅本主题末尾的注释部分。 此参数可以是覆盖图像索引和以下一个或多个值的组合:

Value 含义
ILD_BLEND
ILD_BLEND25
绘制图像,将 25% 与 rgbFg 指定的混合颜色混合。 如果图像列表不包含蒙板,则此值不起作用。
ILD_BLEND50
绘制图像,将 50% 与 rgbFg 指定的混合颜色混合。 如果图像列表不包含蒙板,则此值不起作用。
ILD_FOCUS
ILD_IMAGE
如果覆盖不需要绘制掩码,请设置此标志。 此标志导致 ImageList_DrawEx 仅绘制图像,而忽略掩码。
ILD_MASK
绘制蒙板。
ILD_NORMAL
使用图像列表的背景色绘制图像。 如果背景色是CLR_NONE值,则使用掩码以透明方式绘制图像。
ILD_SELECTED
ILD_TRANSPARENT
使用蒙板以透明方式绘制图像,而不考虑背景色。 如果图像列表不包含蒙板,则此值不起作用。

返回值

类型: BOOL

如果成功,返回不为零的值;否则返回零。

注解

覆盖图像在 i 参数中指定的主图像上以透明方式绘制。 若要在 fStyle 参数中指定覆盖图像,请使用 INDEXTOOVERLAYMASK 宏来移动覆盖图像的基于 1 的索引。 使用 OR 运算符以逻辑方式将宏的返回值与 fStyle 参数中指定的绘图样式标志组合在一起。 必须先使用 ImageList_SetOverlayImage 函数将此图像指定为覆盖图像。

要求

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