다음을 통해 공유


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개체 사용에 대한 자세한 내용은 그래픽 개체를 참조 하세요.

상속 계층 구조

CObject

CGdiObject

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 번호 nIDResourcelpszResourceName 명명되거나 식별되는 비트맵 리소스를 로드합니다.

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_MASKED0일 수 있습니다.

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 할 때 반환하는 것 외에는 이러한 값을 사용하지 않습니다.

참고 항목

MFC 샘플 MDI
CGdiObject 클래스
계층 구조 차트