DrawIconEx 函数 (winuser.h)

将图标或光标绘制到指定的设备上下文中,执行指定的光栅操作,并按指定拉伸或压缩图标或光标。

语法

BOOL DrawIconEx(
  [in]           HDC    hdc,
  [in]           int    xLeft,
  [in]           int    yTop,
  [in]           HICON  hIcon,
  [in]           int    cxWidth,
  [in]           int    cyWidth,
  [in]           UINT   istepIfAniCur,
  [in, optional] HBRUSH hbrFlickerFreeDraw,
  [in]           UINT   diFlags
);

参数

[in] hdc

类型:HDC

要在其中绘制图标或光标的设备上下文的句柄。

[in] xLeft

类型:int

图标或光标左上角的逻辑 x 坐标。

[in] yTop

类型:int

图标或光标左上角的逻辑 y 坐标。

[in] hIcon

类型:HICON

要绘制的图标或光标的句柄。 此参数可以标识动画游标。

[in] cxWidth

类型:int

图标或光标的逻辑宽度。 如果此参数为零且 diFlags 参数 DI_DEFAULTSIZE,则函数使用 SM_CXICON 系统指标值设置宽度。 如果此参数为零且未使用 DI_DEFAULTSIZE,则函数使用实际资源宽度。

[in] cyWidth

类型:int

图标或游标的逻辑高度。 如果此参数为零且 diFlags 参数 DI_DEFAULTSIZE,则函数使用 SM_CYICON 系统指标值设置宽度。 如果此参数为零且未使用 DI_DEFAULTSIZE,则函数使用实际资源高度。

[in] istepIfAniCur

类型:UINT

要绘制的帧的索引(如果 hIcon 标识动画光标)。 如果 hIcon 不标识动画游标,则忽略此参数。

[in, optional] hbrFlickerFreeDraw

类型:HBRUSH

系统用于无闪烁绘图的画笔的句柄。 如果 hbrFlickerFreeDraw 是有效的画笔句柄,则系统会使用指定的背景色画笔创建屏幕外位图,将图标或光标绘制到位图中,然后将位图复制到由 hdc标识的设备上下文中。 如果 hbrFlickerFreeDrawNULL,系统将图标或光标直接绘制到设备上下文中。

[in] diFlags

类型:UINT

绘图标志。 此参数可以是下列值之一。

价值 意义
DI_COMPAT
0x0004
忽略此标志。
DI_DEFAULTSIZE
0x0008
如果 cxWidthcyWidth 参数设置为零,则使用系统指标值指定的宽度和高度绘制图标或光标。 如果未指定此标志,并且 cxWidthcyWidth 设置为零,则函数将使用实际资源大小。
DI_IMAGE
0x0002
使用图像绘制图标或光标。 请参阅“备注”。
DI_MASK
0x0001
使用掩码绘制图标或光标。 请参阅“备注”。
DI_NOMIRROR
0x0010
将图标绘制为无序图标。 默认情况下,如果镜像 hdc,则图标将绘制为镜像图标。
DI_NORMAL
0x0003
DI_IMAGEDI_MASK的组合。 请参阅“备注”。

返回值

类型:BOOL

如果函数成功,则返回值为非零。

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError

言论

DrawIconEx 函数将图标的左上角置于由 xLeftyTop 参数指定的位置。 该位置受设备上下文的当前映射模式的约束。

如果仅设置了 DI_IMAGEDI_MASK 标志之一,则使用 SRCCOPY光栅操作代码绘制相应的位图。

如果同时设置了 DI_IMAGEDI_MASK 标志:

若要复制 DrawIcon (hDC, X, Y, hIcon),请调用 drawIconEx ,如下所示:

DrawIconEx (hDC, X, Y, hIcon, 0, 0, 0, NULL, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE); 

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-gui-l1-1-0(在 Windows 8 中引入)

另请参阅

概念

CopyImage

DrawIcon

图标

LoadImage

参考

BitBlt

AlphaBlend

BLENDFUNCTION