CBitmap
수업
Windows GDI(그래픽 디바이스 인터페이스) 비트맵을 캡슐화하고 비트맵을 조작하는 멤버 함수를 제공합니다.
구문
class CBitmap : public CGdiObject
멤버
공용 생성자
속성 | 설명 |
---|---|
CBitmap::CBitmap |
CBitmap 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CBitmap::CreateBitmap |
지정된 너비, 높이 및 비트 패턴이 있는 디바이스 종속 메모리 비트맵을 사용하여 개체를 초기화합니다. |
CBitmap::CreateBitmapIndirect |
구조체에 지정된 너비, 높이 및 비트 패턴(지정된 경우)을 사용하여 비트맵을 사용하여 개체를 BITMAP 초기화합니다. |
CBitmap::CreateCompatibleBitmap |
지정된 디바이스와 호환되도록 비트맵을 사용하여 개체를 초기화합니다. |
CBitmap::CreateDiscardableBitmap |
지정된 디바이스와 호환되는 삭제 가능한 비트맵을 사용하여 개체를 초기화합니다. |
CBitmap::FromHandle |
Windows HBITMAP 비트맵에 대한 핸들이 CBitmap 제공되면 개체에 대한 포인터를 반환합니다. |
CBitmap::GetBitmap |
비트맵에 BITMAP 대한 정보로 구조를 채웁니다. |
CBitmap::GetBitmapBits |
지정된 비트맵의 비트를 지정된 버퍼에 복사합니다. |
CBitmap::GetBitmapDimension |
비트맵의 너비와 높이를 반환합니다. 높이와 너비는 이전에 멤버 함수에 SetBitmapDimension 의해 설정된 것으로 간주됩니다. |
CBitmap::LoadBitmap |
애플리케이션의 실행 파일에서 명명된 비트맵 리소스를 로드하고 개체에 비트맵을 연결하여 개체를 초기화합니다. |
CBitmap::LoadMappedBitmap |
비트맵을 로드하고 색을 현재 시스템 색에 매핑합니다. |
CBitmap::LoadOEMBitmap |
미리 정의된 Windows 비트맵을 로드하고 개체에 비트맵을 연결하여 개체를 초기화합니다. |
CBitmap::SetBitmapBits |
비트맵의 비트를 지정된 비트 값으로 설정합니다. |
CBitmap::SetBitmapDimension |
너비와 높이를 비트맵에 0.1mm 단위로 할당합니다. |
Public 연산자
속성 | 설명 |
---|---|
CBitmap::operator HBITMAP |
개체에 연결된 Windows 핸들을 CBitmap 반환합니다. |
설명
개체를 CBitmap
사용하려면 개체를 구성하고 초기화 멤버 함수 중 하나를 사용하여 비트맵 핸들을 연결한 다음 개체의 멤버 함수를 호출합니다.
그래픽 CBitmap
개체 사용에 대한 자세한 내용은 그래픽 개체를 참조 하세요.
상속 계층 구조
CBitmap
요구 사항
머리글: afxwin.h
CBitmap::CBitmap
CBitmap
개체를 생성합니다.
CBitmap();
설명
결과 개체는 초기화 멤버 함수 중 하나를 사용하여 초기화해야 합니다.
CBitmap::CreateBitmap
너비, 높이 및 비트 패턴이 지정되어 있는 디바이스 종속적 메모리 비트맵을 초기화합니다.
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
매개 변수
nWidth
비트맵의 너비(픽셀)를 지정합니다.
nHeight
비트맵의 높이(픽셀)를 지정합니다.
nPlanes
비트맵에서 색 평면의 수를 지정합니다.
nBitcount
표시 픽셀당 색 비트의 수를 지정합니다.
lpBits
초기 비트맵 비트 값이 포함된 바이트 배열을 가리킵니다. NULL
이 경우 새 비트맵은 초기화되지 않은 상태로 남아 있습니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
색 비트맵에 대한 nPlanes
또는 nBitcount
매개 변수가 1로 설정되어야 합니다. 이러한 매개 변수가 둘 다 1로 설정되면 CreateBitmap
은 단색 비트맵을 만듭니다.
디스플레이 디바이스에 대해 비트맵을 직접 선택할 수는 없지만 함수를 사용하여 CDC::SelectObject
CDC::BitBlt
호환되는 모든 디바이스 컨텍스트에 복사하여 "메모리 디바이스 컨텍스트"의 현재 비트맵으로 선택할 수 있습니다.
CBitmap
함수에서 만들어진 CreateBitmap
개체 사용을 완료하면 먼저 디바이스 컨텍스트에서 비트맵을 선택하고 나서 CBitmap
개체를 삭제합니다.
자세한 내용은 구조체의 필드에 대한 bmBits
설명을 참조하세요 BITMAP
. 구조체는 BITMAP
멤버 함수 아래에 설명되어 CBitmap::CreateBitmapIndirect
있습니다.
CBitmap::CreateBitmapIndirect
가리키는 구조에 지정된 너비, 높이 및 비트 패턴(지정된 경우)이 있는 비트맵을 lpBitmap
초기화합니다.
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
매개 변수
lpBitmap
비트맵에 BITMAP
대한 정보가 포함된 구조를 가리킵니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
디스플레이 디바이스에 대해 비트맵을 직접 선택할 수는 없지만 사용하거나 함수를 사용하여 CDC::SelectObject
CDC::BitBlt
CDC::StretchBlt
호환되는 디바이스 컨텍스트에 복사하여 메모리 디바이스 컨텍스트의 현재 비트맵으로 선택할 수 있습니다. (함수는 CDC::PatBlt
현재 브러시의 비트맵을 디스플레이 디바이스 컨텍스트에 직접 복사할 수 있습니다.)
매개 변수가 BITMAP
가리키는 lpBitmap
구조체가 함수를 사용하여 GetObject
채워진 경우 비트맵의 비트가 지정되지 않고 비트맵이 초기화되지 않습니다. 비트맵을 초기화하기 위해 애플리케이션은 다음과 같은 CDC::BitBlt
함수를 사용하거나 SetDIBits
첫 번째 매개 변수로 식별된 비트맵에서 CGdiObject::GetObject
만든 CreateBitmapIndirect
비트맵으로 비트를 복사할 수 있습니다.
함수를 사용하여 만든 개체를 CBitmap
완료하면 먼저 디바이스 컨텍스트에서 비트맵을 선택한 다음 개체를 삭제합니다CBitmap
.CreateBitmapIndirect
CBitmap::CreateCompatibleBitmap
로 지정된 pDC
디바이스와 호환되는 비트맵을 초기화합니다.
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
매개 변수
pDC
디바이스 컨텍스트를 지정합니다.
nWidth
비트맵의 너비(픽셀)를 지정합니다.
nHeight
비트맵의 높이(픽셀)를 지정합니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
비트맵에는 지정된 디바이스 컨텍스트와 동일한 수의 색 평면 또는 픽셀당 동일한 비트 형식이 있습니다. 지정된 메모리 디바이스와 호환되는 모든 메모리 디바이스의 현재 비트맵으로 pDC
선택할 수 있습니다.
메모리 디바이스 컨텍스트인 경우 pDC
반환된 비트맵의 형식은 해당 디바이스 컨텍스트에서 현재 선택된 비트맵과 동일합니다. "메모리 디바이스 컨텍스트"는 디스플레이 화면을 나타내는 메모리 블록입니다. 호환되는 디바이스의 실제 디스플레이 화면에 복사하기 전에 메모리의 이미지를 준비하는 데 사용할 수 있습니다.
메모리 디바이스 컨텍스트가 만들어지면 GDI는 모노크롬 스톡 비트맵을 자동으로 선택합니다.
색 메모리 디바이스 컨텍스트는 색 또는 단색 비트맵을 선택할 수 있으므로 함수에서 반환하는 CreateCompatibleBitmap
비트맵의 형식이 항상 동일하지는 않습니다. 그러나 비사용 디바이스 컨텍스트에 대한 호환되는 비트맵의 형식은 항상 디바이스 형식입니다.
함수를 CBitmap
사용하여 만든 CreateCompatibleBitmap
개체를 완료하면 먼저 디바이스 컨텍스트에서 비트맵을 선택한 다음 개체를 삭제합니다 CBitmap
.
CBitmap::CreateDiscardableBitmap
로 식별되는 디바이스 컨텍스트와 호환되는 삭제 가능한 비트맵을 pDC
초기화합니다.
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
매개 변수
pDC
디바이스 컨텍스트를 지정합니다.
nWidth
비트맵의 너비(비트 단위)를 지정합니다.
nHeight
비트맵의 높이(비트 단위)를 지정합니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
비트맵에는 지정된 디바이스 컨텍스트와 동일한 수의 색 평면 또는 픽셀당 동일한 비트 형식이 있습니다. 애플리케이션에서 지정한 것과 호환되는 메모리 디바이스의 현재 비트맵으로 이 비트맵을 pDC
선택할 수 있습니다.
Windows는 애플리케이션이 디스플레이 컨텍스트로 선택하지 않은 경우에만 이 함수에서 만든 비트맵을 삭제할 수 있습니다. 비트맵을 선택하지 않을 때 Windows에서 삭제하고 애플리케이션이 나중에 선택하려고 하면 함수는 NULL을 CDC::SelectObject
반환합니다.
함수를 CBitmap
사용하여 만든 CreateDiscardableBitmap
개체를 완료하면 먼저 디바이스 컨텍스트에서 비트맵을 선택한 다음 개체를 삭제합니다 CBitmap
.
CBitmap::FromHandle
Windows GDI 비트맵에 CBitmap
대한 핸들이 제공되면 개체에 대한 포인터를 반환합니다.
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
매개 변수
hBitmap
Windows GDI 비트맵을 지정합니다.
Return Value
성공하면 개체에 대한 포인터입니다 CBitmap
. 그렇지 않으면 NULL
.
설명
개체가 CBitmap
핸들에 아직 연결되지 않은 경우 임시 CBitmap
개체가 만들어지고 연결됩니다. 이 임시 CBitmap
개체는 다음에 애플리케이션이 이벤트 루프에서 유휴 시간을 가지며, 이때 모든 임시 그래픽 개체가 삭제될 때까지만 유효합니다. 또 다른 방법은 임시 개체가 하나의 창 메시지를 처리하는 동안에만 유효하다는 것입니다.
CBitmap::GetBitmap
연결된 비트맵에 대한 이미지 속성을 검색합니다.
int GetBitmap(BITMAP* pBitMap);
매개 변수
pBitMap
BITMAP
이미지 속성을 받을 구조체에 대한 포인터입니다. 이 매개 변수는 NULL
이 아니어야 합니다.
Return Value
메서드가 성공한 경우 0이 아니며, 그렇지 않은 경우 0입니다.
설명
CBitmap::GetBitmapBits
연결된 비트맵의 비트 패턴을 지정된 버퍼에 복사합니다.
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
매개 변수
dwCount
버퍼에 복사할 바이트 수입니다.
lpBits
비트맵을 받을 버퍼에 대한 포인터입니다.
Return Value
메서드가 성공한 경우 버퍼에 복사된 바이트 수입니다. 그렇지 않으면 0입니다.
설명
필요한 버퍼 크기를 확인하는 데 사용합니다 CBitmap::GetBitmap
.
CBitmap::GetBitmapDimension
비트맵의 너비와 높이를 반환합니다.
CSize GetBitmapDimension() const;
Return Value
비트맵의 너비와 높이(0.1mm 단위로 측정)입니다. 높이가 개체의 CSize
멤버에 cy
있고 너비가 멤버에 cx
있습니다. 비트맵 너비와 높이를 사용하여 SetBitmapDimension
설정하지 않은 경우 반환 값은 0입니다.
설명
높이와 너비는 멤버 함수를 사용하여 SetBitmapDimension
이전에 설정된 것으로 간주됩니다.
CBitmap::LoadBitmap
애플리케이션의 실행 파일에서 ID 번호 nIDResource
로 lpszResourceName
명명되거나 식별되는 비트맵 리소스를 로드합니다.
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
매개 변수
lpszResourceName
비트맵 리소스의 이름을 포함하는 null로 끝나는 문자열을 가리킵니다.
nIDResource
비트맵 리소스의 리소스 ID 번호를 지정합니다.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
로드된 비트맵이 개체에 CBitmap
연결됩니다.
식별된 비트맵이 없거나 비트맵을 lpszResourceName
로드할 메모리가 부족한 경우 함수는 0을 반환합니다.
함수를 사용하여 함수에 CGdiObject::DeleteObject
의해 로드된 비트맵을 LoadBitmap
삭제하거나 CBitmap
소멸자가 개체를 삭제할 수 있습니다.
주의
개체를 삭제하기 전에 디바이스 컨텍스트로 선택되지 않았는지 확인합니다.
다음 비트맵이 Windows 버전 3.1 이상에 추가되었습니다.
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
이러한 비트맵은 Windows 버전 3.0 이하의 디바이스 드라이버에서 찾을 수 없습니다. 비트맵의 전체 목록과 모양 표시는 Windows SDK를 참조하세요.
CBitmap::LoadMappedBitmap
이 멤버 함수를 호출하여 비트맵을 로드하고 색을 현재 시스템 색에 매핑합니다.
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
매개 변수
nIDBitmap
비트맵 리소스의 ID입니다.
nFlags
비트맵의 플래그입니다. 0 또는 CMB_MASKED
0일 수 있습니다.
lpColorMap
비트맵을 COLORMAP
매핑하는 데 필요한 색 정보를 포함하는 구조체에 대한 포인터입니다. 이 매개 변수인 NULL
경우 함수는 기본 색 맵을 사용합니다.
nMapSize
에서 가리키는 색 맵의 수입니다 lpColorMap
.
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
기본적으로 LoadMappedBitmap
단추 문자 모양에 일반적으로 사용되는 색을 매핑합니다.
매핑된 비트맵을 만드는 방법에 대한 자세한 내용은 Windows 함수 CreateMappedBitmap
및 Windows SDK의 COLORMAP
구조를 참조하세요.
CBitmap::LoadOEMBitmap
Windows에서 사용하는 미리 정의된 비트맵을 로드합니다.
BOOL LoadOEMBitmap(UINT nIDBitmap);
매개 변수
nIDBitmap
미리 정의된 Windows 비트맵의 ID 번호입니다. 가능한 값은 아래 WINDOWS.H
와 같습니다.
OBM_BTNCORNERS
OBM_BTSIZE
OBM_CHECK
OBM_CHECKBOXES
OBM_CLOSE
OBM_COMBO
OBM_DNARROW
OBM_DNARROWD
OBM_DNARROWI
OBM_LFARROW
OBM_LFARROWD
OBM_LFARROWI
OBM_MNARROW
OBM_OLD_CLOSE
OBM_OLD_DNARROW
OBM_OLD_LFARROW
OBM_OLD_REDUCE
OBM_OLD_RESTORE
OBM_OLD_RGARROW
OBM_OLD_UPARROW
OBM_OLD_ZOOM
OBM_REDUCE
OBM_REDUCED
OBM_RESTORE
OBM_RESTORED
OBM_RGARROW
OBM_RGARROWD
OBM_RGARROWI
OBM_SIZE
OBM_UPARROW
OBM_UPARROW
OBM_UPARROWD
OBM_ZOOM
OBM_ZOOMD
Return Value
성공하면 0이 아니고, 그렇지 않으면 0입니다.
설명
3.0 이전의 Windows 버전에서 사용하는 비트맵을 OBM_OLD
나타내는 것으로 시작하는 비트맵 이름입니다.
상수 중 OBM_
어떤 상수 OEMRESOURCE
도 사용하려면 포함 WINDOWS.H
하기 전에 상수가 정의되어야 합니다.
CBitmap::operator HBITMAP
이 연산자를 사용하여 개체의 연결된 Windows GDI 핸들을 가져옵니다 CBitmap
.
operator HBITMAP() const;
Return Value
성공하면 개체가 나타내는 Windows GDI 개체에 대한 핸들입니다 CBitmap
. 그렇지 않으면 NULL
.
설명
이 연산자는 개체의 직접 사용을 지원하는 캐스팅 연산자입니다 HBITMAP
.
그래픽 개체 사용에 대한 자세한 내용은 Windows SDK의 그래픽 개체를 참조하세요.
CBitmap::SetBitmapBits
비트맵의 비트를 지정된 비트 값 lpBits
으로 설정합니다.
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
매개 변수
dwCount
에서 가리키는 lpBits
바이트 수를 지정합니다.
lpBits
개체에 BYTE
복사할 픽셀 값이 들어 있는 배열을 CBitmap
가리킵니다. 비트맵이 이미지를 올바르게 렌더링하려면 인스턴스를 만들 때 지정한 높이, 너비 및 색 깊이 값을 준수하도록 값의 서식을 CBitmap
지정해야 합니다. 자세한 내용은 CBitmap::CreateBitmap
를 참조하세요.
Return Value
비트맵 비트를 설정하는 데 사용되는 바이트 수입니다. 함수가 실패하면 0입니다.
CBitmap::SetBitmapDimension
너비와 높이를 비트맵에 0.1mm 단위로 할당합니다.
CSize SetBitmapDimension(
int nWidth,
int nHeight);
매개 변수
nWidth
비트맵의 너비를 0.1mm 단위로 지정합니다.
nHeight
비트맵의 높이(0.1mm 단위)를 지정합니다.
Return Value
이전 비트맵 차원입니다. Height는 cy
개체의 멤버 변수에 CSize
있고 너비는 멤버 변수에 cx
있습니다.
설명
GDI는 애플리케이션이 멤버 함수를 호출 GetBitmapDimension
할 때 반환하는 것 외에는 이러한 값을 사용하지 않습니다.