Função CopyImage (winuser.h)

Cria uma nova imagem (ícone, cursor ou bitmap) e copia os atributos da imagem especificada para a nova. Se necessário, a função alonga os bits para se ajustar ao tamanho desejado da nova imagem.

Sintaxe

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

Parâmetros

[in] h

Tipo: HANDLE

Um identificador para a imagem a ser copiada.

[in] type

Tipo: UINT

O tipo de imagem a ser copiada. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
IMAGE_BITMAP
0
Copia um bitmap.
IMAGE_CURSOR
2
Copia um cursor.
IMAGE_ICON
1
Copia um ícone.

[in] cx

Tipo: int

A largura desejada, em pixels, da imagem. Se for zero, a imagem retornada terá a mesma largura que a hImage original.

[in] cy

Tipo: int

A altura desejada, em pixels, da imagem. Se for zero, a imagem retornada terá a mesma altura que a hImage original.

[in] flags

Tipo: UINT

Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
LR_COPYDELETEORG
0x00000008
Exclui a imagem original depois de criar a cópia.
LR_COPYFROMRESOURCE
0x00004000
Tenta recarregar um ícone ou recurso de cursor do arquivo de recurso original em vez de simplesmente copiar a imagem atual. Isso é útil para criar uma cópia de tamanho diferente quando o arquivo de recurso contém vários tamanhos do recurso. Sem esse sinalizador, CopyImage estende a imagem original para o novo tamanho. Se esse sinalizador for definido, CopyImage usará o tamanho no arquivo de recurso mais próximo do tamanho desejado. Isso só terá êxito se hImage tiver sido carregado por LoadIcon ou LoadCursor ou por LoadImage com o sinalizador LR_SHARED.
LR_COPYRETURNORG
0x00000004
Retornará o hImage original se atender aos critérios para a cópia, ou seja, dimensões corretas e profundidade de cor, nesse caso, o sinalizador LR_COPYDELETEORG será ignorado. Se esse sinalizador não for especificado, um novo objeto será sempre criado.
LR_CREATEDIBSECTION
0x00002000
Se isso for definido e um novo bitmap for criado, o bitmap será criado como uma seção DIB. Caso contrário, a imagem de bitmap será criada como um bitmap dependente do dispositivo. Esse sinalizador só será válido se uType for IMAGE_BITMAP.
LR_DEFAULTCOLOR
0x00000000
Usa o formato de cor padrão.
LR_DEFAULTSIZE
0x00000040
Usa a largura ou altura especificada pelos valores de métrica do sistema para cursores ou ícones, se os valores cxDesired ou cyDesired forem definidos como zero. Se esse sinalizador não for especificado e cxDesired e cyDesired forem definidos como zero, a função usará o tamanho real do recurso. Se o recurso contiver várias imagens, a função usará o tamanho da primeira imagem.
LR_MONOCHROME
0x00000001
Cria uma nova imagem monocromática.

Retornar valor

Tipo: HANDLE

Se a função for bem-sucedida, o valor retornado será o identificador para a imagem recém-criada.

Se a função falhar, o valor retornado será NULL. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Quando terminar de usar o recurso, você poderá liberar sua memória associada chamando uma das funções na tabela a seguir.

Recurso Função Release
Bitmap DeleteObject
Cursor DestroyCursor
ícone Destroyicon
 

No entanto, o sistema exclui automaticamente o recurso quando seu processo é encerrado, no entanto, chamar a função apropriada salva memória e diminui o tamanho do conjunto de trabalho do processo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-gui-l1-3-0 (introduzido no Windows 10, versão 10.0.10240)

Confira também

Conceitual

Loadimage

Referência

Recursos