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
绘图标志。 此参数可以是下列值之一。
返回值
类型:BOOL
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError。
言论
DrawIconEx 函数将图标的左上角置于由 xLeft 和 yTop 参数指定的位置。 该位置受设备上下文的当前映射模式的约束。
如果仅设置了 DI_IMAGE 和 DI_MASK 标志之一,则使用 SRCCOPY光栅操作代码绘制相应的位图。
如果同时设置了 DI_IMAGE 和 DI_MASK 标志:
- 如果图标或光标是 32 位 alpha 混合图标或游标,则使用 AC_SRC_OVER混合函数绘制图像 并忽略掩码。
- 对于所有其他图标或光标,使用 SRCAND光栅操作代码绘制掩码,并使用 SRCINVERT光栅操作代码绘制图像
若要复制 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 中引入) |
另请参阅
概念
参考