CopyImage 함수(winuser.h)

새 이미지(아이콘, 커서 또는 비트맵)를 만들고 지정된 이미지의 특성을 새 이미지에 복사합니다. 필요한 경우 함수는 새 이미지의 원하는 크기에 맞게 비트를 늘립니다.

구문

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

매개 변수

[in] h

형식: HANDLE

복사할 이미지에 대한 핸들입니다.

[in] type

형식: UINT

복사할 이미지의 형식입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
IMAGE_BITMAP
0
비트맵을 복사합니다.
IMAGE_CURSOR
2
커서를 복사합니다.
IMAGE_ICON
1
아이콘을 복사합니다.

[in] cx

형식: int

이미지의 원하는 너비(픽셀)입니다. 이 값이 0이면 반환된 이미지의 너비가 원래 hImage와 동일합니다.

[in] cy

형식: int

이미지의 원하는 높이(픽셀)입니다. 이 값이 0이면 반환된 이미지의 높이가 원래 hImage와 동일합니다.

[in] flags

형식: UINT

이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
LR_COPYDELETEORG
0x00000008
복사본을 만든 후 원본 이미지를 삭제합니다.
LR_COPYFROMRESOURCE
0x00004000
단순히 현재 이미지를 복사하는 대신 원래 리소스 파일에서 아이콘 또는 커서 리소스를 다시 로드하려고 시도합니다. 리소스 파일에 리소스의 여러 크기가 포함된 경우 다른 크기의 복사본을 만드는 데 유용합니다. 이 플래그가 없으면 CopyImage 는 원래 이미지를 새 크기로 늘입니다. 이 플래그가 설정되면 CopyImage 는 원하는 크기에 가장 가까운 리소스 파일의 크기를 사용합니다. hImageLoadIcon 또는 LoadCursor에서 로드되었거나 LR_SHARED 플래그가 있는 LoadImage에 의해 로드된 경우에만 성공합니다.
LR_COPYRETURNORG
0x00000004
원본 hImage 가 복사본의 조건(즉, 올바른 차원 및 색 깊이)을 충족하는 경우 반환합니다. 이 경우 LR_COPYDELETEORG 플래그는 무시됩니다. 이 플래그를 지정하지 않으면 항상 새 개체가 만들어집니다.
LR_CREATEDIBSECTION
0x00002000
이 설정이 설정되고 새 비트맵이 만들어지면 비트맵이 DIB 섹션으로 만들어집니다. 그렇지 않으면 비트맵 이미지가 디바이스 종속 비트맵으로 만들어집니다. 이 플래그는 uTypeIMAGE_BITMAP 경우에만 유효합니다.
LR_DEFAULTCOLOR
0x00000000
기본 색 형식을 사용합니다.
LR_DEFAULTSIZE
0x00000040
cxDesired 또는 cyDesired 값이 0으로 설정된 경우 커서 또는 아이콘에 대한 시스템 메트릭 값으로 지정된 너비 또는 높이를 사용합니다. 이 플래그를 지정하지 않고 cxDesiredcyDesired 가 0으로 설정된 경우 함수는 실제 리소스 크기를 사용합니다. 리소스에 여러 이미지가 포함된 경우 함수는 첫 번째 이미지의 크기를 사용합니다.
LR_MONOCHROME
0x00000001
새 단색 이미지를 만듭니다.

반환 값

형식: HANDLE

함수가 성공하면 반환 값은 새로 만든 이미지에 대한 핸들입니다.

함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

리소스 사용을 마치면 다음 표의 함수 중 하나를 호출하여 연결된 메모리를 해제할 수 있습니다.

리소스 릴리스 함수
Bitmap DeleteObject
커서 DestroyCursor
아이콘 DestroyIcon
 

그러나 시스템이 프로세스가 종료되면 리소스를 자동으로 삭제합니다. 그러나 적절한 함수를 호출하면 메모리가 절약되고 프로세스의 작업 집합 크기가 줄어듭니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-gui-l1-3-0(Windows 10 버전 10.0.10240에 도입됨)

추가 정보

개념

Loadimage

참조

리소스