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 标识的设备上下文中。 如果 hbrFlickerFreeDraw 为 NULL,系统会将图标或光标直接绘制到设备上下文中。
[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 [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | 在 Windows 8) 中引入的 ext-ms-win-ntuser-gui-l1-1-0 ( |
请参阅
概念性
引用
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈