copyImage 函数 (winuser.h)
(图标、光标或位图) 创建新图像,并将指定图像的属性复制到新图像。 如有必要,函数会拉伸位以适应新图像的所需大小。
语法
HANDLE CopyImage(
[in] HANDLE h,
[in] UINT type,
[in] int cx,
[in] int cy,
[in] UINT flags
);
参数
[in] h
类型: 句柄
要复制的图像的句柄。
[in] type
类型: UINT
要复制的图像的类型。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
复制位图。 |
|
复制游标。 |
|
复制图标。 |
[in] cx
类型: int
图像的所需宽度(以像素为单位)。 如果为零,则返回的图像的宽度将与原始 hImage 相同。
[in] cy
类型: int
图像的所需高度(以像素为单位)。 如果为零,则返回的图像的高度将与原始 hImage 相同。
[in] flags
类型: UINT
此参数可使用以下一个或多个值。
值 | 含义 |
---|---|
|
创建副本后删除原始映像。 |
|
尝试从原始资源文件重新加载图标或游标资源,而不只是复制当前图像。 当资源文件包含资源的多个大小时,这对于创建不同大小的副本很有用。 如果没有此标志, CopyImage 会将原始图像拉伸到新大小。 如果设置了此标志, CopyImage 将使用资源文件中最接近所需大小的大小。 仅当 hImage 由 LoadIcon 或 LoadCursor 加载,或者由 LoadImage 加载LR_SHARED标志时,此操作才会成功。 |
|
如果原始 hImage 满足复制条件(即正确的尺寸和颜色深度),则返回原始 hImage ,在这种情况下, 将忽略LR_COPYDELETEORG 标志。 如果未指定此标志,则始终创建一个新对象。 |
|
如果已设置此设置并创建新的位图,则会将位图创建为 DIB 部分。 否则,位图图像将创建为依赖于设备的位图。 仅当IMAGE_BITMAP uType 时,此标志才有效。 |
|
使用默认颜色格式。 |
|
如果 cxDesired 或 cyDesired 值设置为零,则使用游标或图标的系统指标值指定的宽度或高度。 如果未指定此标志,并且 cxDesired 和 cyDesired 设置为零,则函数将使用实际资源大小。 如果资源包含多个图像,则 函数使用第一个图像的大小。 |
|
创建新的单色图像。 |
返回值
类型: 句柄
如果函数成功,则返回值是新创建的映像的句柄。
如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。
注解
使用完资源后,可以通过调用下表中的函数之一释放其关联的内存。
资源 | 释放函数 |
---|---|
Bitmap | DeleteObject |
游标 | DestroyCursor |
图标 | DestroyIcon |
系统在其进程终止时自动删除资源,但是,调用相应的函数会节省内存并减小进程的工作集的大小。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | Windows 10版本 10.0.1 (0240 中引入的 ext-ms-win-ntuser-gui-l1-3-0) |
请参阅
概念性
引用