Compartir a través de


Función CopyImage (winuser.h)

Crea una nueva imagen (icono, cursor o mapa de bits) y copia los atributos de la imagen especificada en la nueva. Si es necesario, la función amplía los bits para ajustarse al tamaño deseado de la nueva imagen.

Sintaxis

HANDLE CopyImage(
  [in] HANDLE h,
  [in] UINT   type,
  [in] int    cx,
  [in] int    cy,
  [in] UINT   flags
);

Parámetros

[in] h

Tipo: HANDLE

Identificador de la imagen que se va a copiar.

[in] type

Tipo: UINT

Tipo de imagen que se va a copiar. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
IMAGE_BITMAP
0
Copia un mapa de bits.
IMAGE_CURSOR
2
Copia un cursor.
IMAGE_ICON
1
Copia un icono.

[in] cx

Tipo: int

Ancho deseado, en píxeles, de la imagen. Si es cero, la imagen devuelta tendrá el mismo ancho que el hImage original.

[in] cy

Tipo: int

Alto deseado, en píxeles, de la imagen. Si es cero, la imagen devuelta tendrá el mismo alto que el hImage original.

[in] flags

Tipo: UINT

Este parámetro puede ser uno o más de los siguientes valores.

Valor Significado
LR_COPYDELETEORG
0x00000008
Elimina la imagen original después de crear la copia.
LR_COPYFROMRESOURCE
0x00004000
Intenta volver a cargar un icono o un recurso de cursor desde el archivo de recursos original en lugar de simplemente copiar la imagen actual. Esto resulta útil para crear una copia de tamaño diferente cuando el archivo de recursos contiene varios tamaños del recurso. Sin esta marca, CopyImage amplía la imagen original al nuevo tamaño. Si se establece esta marca, CopyImage usa el tamaño del archivo de recursos más cercano al tamaño deseado. Esto solo se realizará correctamente si LoadIcon o LoadCursor cargó hImage o LoadImage con la marca LR_SHARED.
LR_COPYRETURNORG
0x00000004
Devuelve el hImage original si cumple los criterios de la copia (es decir, dimensiones correctas y profundidad de color), en cuyo caso se omite la marca LR_COPYDELETEORG . Si no se especifica esta marca, siempre se crea un nuevo objeto.
LR_CREATEDIBSECTION
0x00002000
Si se establece y se crea un nuevo mapa de bits, el mapa de bits se crea como una sección DIB. De lo contrario, la imagen de mapa de bits se crea como un mapa de bits dependiente del dispositivo. Esta marca solo es válida si uType es IMAGE_BITMAP.
LR_DEFAULTCOLOR
0x00000000
Usa el formato de color predeterminado.
LR_DEFAULTSIZE
0x00000040
Usa el ancho o alto especificado por los valores de métrica del sistema para cursores o iconos, si los valores cxDesired o cyDesired se establecen en cero. Si no se especifica esta marca y cxDesired y cyDesired se establecen en cero, la función usa el tamaño real del recurso. Si el recurso contiene varias imágenes, la función usa el tamaño de la primera imagen.
LR_MONOCHROME
0x00000001
Crea una nueva imagen monocromática.

Valor devuelto

Tipo: HANDLE

Si la función se realiza correctamente, el valor devuelto es el identificador de la imagen recién creada.

Si la función no se realiza correctamente, el valor devuelto es NULL. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Cuando haya terminado de usar el recurso, puede liberar su memoria asociada llamando a una de las funciones de la tabla siguiente.

Recurso Función Release
Bitmap DeleteObject
Cursor DestroyCursor
Icono Destroyicon
 

El sistema elimina automáticamente el recurso cuando finaliza su proceso, pero al llamar a la función adecuada se ahorra memoria y se reduce el tamaño del espacio de trabajo del proceso.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluir Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-gui-l1-3-0 (introducido en Windows 10, versión 10.0.10240)

Consulte también

Conceptual

LoadImage

Referencia

Recursos