다음을 통해 공유


CGdiObject 클래스

비트맵, 영역, 브러시, 펜, 색상표와 글꼴 등 다양한 Windows GDI(그래픽 디바이스 인터페이스) 개체에 기본 클래스를 제공합니다.

구문

class CGdiObject : public CObject

멤버

공용 생성자

속성 설명
CGdiObject::CGdiObject CGdiObject 개체를 생성합니다.

공용 메서드

이름 설명
CGdiObject::Attach Windows GDI 개체를 개체에 CGdiObject 연결합니다.
CGdiObject::CreateStockObject Windows 미리 정의된 스톡 펜, 브러시 또는 글꼴 중 하나에 대한 핸들을 검색합니다.
CGdiObject::D eleteObject 개체와 연결된 모든 시스템 스토리지를 CGdiObject 해제하여 개체에 연결된 Windows GDI 개체를 메모리에서 삭제합니다.
CGdiObject::D eleteTempMap 에서 만든 FromHandle임시 CGdiObject 개체를 삭제합니다.
CGdiObject::D etach 개체에서 Windows GDI 개체를 CGdiObject 분리하고 Windows GDI 개체에 대한 핸들을 반환합니다.
CGdiObject::FromHandle Windows GDI 개체에 대한 CGdiObject 핸들이 지정된 개체에 대한 포인터를 반환합니다.
CGdiObject::GetObject 개체에 연결된 Windows GDI 개체를 설명하는 데이터로 버퍼를 CGdiObject 채웁니다.
CGdiObject::GetObjectType GDI 개체의 형식을 검색합니다.
CGdiObject::GetSafeHandle NULL이 아니면 this 반환 m_hObject 되며, 이 경우 NULL이 반환됩니다.
CGdiObject::UnrealizeObject 브러시의 원본을 다시 설정하거나 논리 팔레트를 다시 설정합니다.

Public 연산자

속성 설명
CGdiObject::operator != 두 GDI 개체가 논리적으로 같지 않은지 여부를 확인합니다.
CGdiObject::operator == 두 GDI 개체가 논리적으로 같은지 여부를 확인합니다.
CGdiObject::operator HGDIOBJ 연결된 Windows GDI 개체에 대한 HANDLE을 검색합니다.

공용 데이터 멤버

속성 설명
CGdiObject::m_hObject 이 개체에 연결된 HBITMAP, HPALETTE, HRGN, HBRUSH, HPEN 또는 HFONT를 포함하는 핸들입니다.

설명

직접 만들 수 CGdiObject 없습니다. 대신 파생 클래스 중 하나(예: CPen 또는 CBrush.)에서 개체를 만듭니다.

자세한 내용은 그래픽 개체를 CGdiObject참조 하세요.

상속 계층 구조

CObject

CGdiObject

요구 사항

헤더: afxwin.h

CGdiObject::Attach

Windows GDI 개체를 개체에 CGdiObject 연결합니다.

BOOL Attach(HGDIOBJ hObject);

매개 변수

hObject
Windows GDI 개체(예: HPEN 또는 HBRUSH)에 대한 핸들입니다.

Return Value

첨부 파일이 성공하면 0이 아닌 경우 그렇지 않으면 0입니다.

CGdiObject::CGdiObject

CGdiObject 개체를 생성합니다.

CGdiObject();

설명

직접 만들 수 CGdiObject 없습니다. 대신 파생 클래스 중 하나(예: CPen 또는 Cbrush.)에서 개체를 만듭니다.

CGdiObject::CreateStockObject

미리 정의된 스톡 Windows GDI 펜, 브러시 또는 글꼴 중 하나에 대한 핸들을 검색하고 GDI 개체를 개체에 CGdiObject 연결합니다.

BOOL CreateStockObject(int nIndex);

매개 변수

nIndex
원하는 스톡 개체의 형식을 지정하는 상수입니다. 적절한 값에 대한 설명은 Windows SDK의 GetStockObject에 대한 fnObject 매개 변수를 참조하세요.

Return Value

함수가 성공하면 0이 아니고 그렇지 않으면 0입니다.

설명

스톡 펜과 같이 CPen Windows GDI 개체 형식에 해당하는 파생 클래스 중 하나를 사용하여 이 함수를 호출합니다.

CGdiObject::D eleteObject

Windows GDI 개체와 연결된 모든 시스템 스토리지를 해제하여 연결된 Windows GDI 개체를 메모리에서 삭제합니다.

BOOL DeleteObject();

Return Value

GDI 개체가 성공적으로 삭제된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

개체와 연결된 스토리지는 이 호출의 CGdiObject 영향을 받지 않습니다. 애플리케이션은 현재 디바이스 컨텍스트로 선택된 개체를 CGdiObject 호출 DeleteObject 해서는 안 됩니다.

패턴 브러시가 삭제되면 브러시와 연결된 비트맵이 삭제되지 않습니다. 비트맵은 독립적으로 삭제해야 합니다.

CGdiObject::D eleteTempMap

유휴 시간 처리기에서 CWinApp 자동으로 호출되면 DeleteTempMap .에서 만든 FromHandle임시 CGdiObject 개체가 삭제됩니다.

static void PASCAL DeleteTempMap();

설명

DeleteTempMap 개체를 삭제하기 전에 임시 CGdiObject 개체에 연결된 Windows GDI 개체를 분리합니다 CGdiObject .

예시

// DeleteTempMap() is a static member and so does not need to
// be called within the scope of an instantiated CGdiObject object.
CGdiObject::DeleteTempMap();

CGdiObject::D etach

개체에서 Windows GDI 개체를 CGdiObject 분리하고 Windows GDI 개체에 대한 핸들을 반환합니다.

HGDIOBJ Detach();

Return Value

분리된 Windows GDI 개체에 대한 A HANDLE 이고, GDI 개체가 연결되어 있지 않으면 NULL입니다.

CGdiObject::FromHandle

Windows GDI 개체에 대한 CGdiObject 핸들이 지정된 개체에 대한 포인터를 반환합니다.

static CGdiObject* PASCAL FromHandle(HGDIOBJ hObject);

매개 변수

hObject
Windows GDI 개체에 대한 HANDLE입니다.

Return Value

일시적이거나 영구적일 수 있는 포인터 CGdiObject 입니다.

설명

개체가 CGdiObject Windows GDI 개체에 아직 연결되지 않은 경우 임시 CGdiObject 개체가 만들어지고 연결됩니다.

이 임시 CGdiObject 개체는 다음에 애플리케이션이 이벤트 루프에서 유휴 시간을 가지며, 이때 모든 임시 그래픽 개체가 삭제될 때까지만 유효합니다. 또 다른 방법은 임시 개체가 하나의 창 메시지를 처리하는 동안에만 유효하다는 것입니다.

CGdiObject::GetObject

지정된 개체를 정의하는 데이터로 버퍼를 채웁니다.

int GetObject(
    int nCount,
    LPVOID lpObject) const;

매개 변수

nCount
lpObject 버퍼에 복사할 바이트 수를 지정합니다.

lpObject
정보를 받을 사용자 제공 버퍼를 가리킵니다.

Return Value

검색된 바이트 수입니다. 그렇지 않으면 오류가 발생하면 0입니다.

설명

이 함수는 다음 목록과 같이 그래픽 개체의 형식에 따라 형식이 달라지는 데이터 구조를 검색합니다.

Object 버퍼 유형
CPen LOGPEN
CBrush LOGBRUSH
CFont LOGFONT
CBitmap 비트맵
CPalette WORD
CRgn 지원되지 않음

개체가 개체 GetObjectCBitmap 경우 비트맵의 너비, 높이 및 색 서식 정보만 반환합니다. CBitmap::GetBitmapBits를 사용하여 실제 비트를 검색할 수 있습니다.

개체가 개체 GetObjectCPalette 경우 색상표의 항목 수를 지정하는 WORD를 검색합니다. 이 함수는 색상표를 정의하는 LOGPALETTE 구조를 검색하지 않습니다. 애플리케이션은 CPalette::GetPaletteEntries를 호출 하여 팔레트 항목에 대한 정보를 가져올 수 있습니다.

CGdiObject::GetObjectType

GDI 개체의 형식을 검색합니다.

UINT GetObjectType() const;

Return Value

성공한 경우 개체의 형식입니다. 그렇지 않으면 0입니다. 값은 다음 중 하나입니다.

  • 비트맵 OBJ_BITMAP

  • OBJ_BRUSH 브러시

  • OBJ_FONT 글꼴

  • OBJ_PAL 색상표

  • OBJ_PEN 펜

  • OBJ_EXTPEN 확장 펜

  • OBJ_REGION 지역

  • OBJ_DC 디바이스 컨텍스트

  • OBJ_MEMDC 메모리 디바이스 컨텍스트

  • 메타파일 OBJ_METAFILE

  • 메타파일 디바이스 컨텍스트 OBJ_METADC

  • 향상된 메타파일 OBJ_ENHMETAFILE

  • 향상된 메타파일 디바이스 컨텍스트 OBJ_ENHMETADC

CGdiObject::GetSafeHandle

NULL이 아니면 this 반환 m_hObject 되며, 이 경우 NULL이 반환됩니다.

HGDIOBJ GetSafeHandle() const;

Return Value

연결된 Windows GDI 개체에 대한 핸들입니다. 개체가 연결되어 있지 않으면 NULL이 아닙니다.

설명

이는 일반 핸들 인터페이스 패러다임의 일부이며 NULL이 핸들에 대해 유효하거나 특수한 값인 경우 유용합니다.

예시

CWnd::IsWindowEnabled에 대한 예제를 참조하세요.

CGdiObject::m_hObject

이 개체에 연결된 HBITMAP, HRGN, HBRUSH, HPEN, HPALETTE 또는 HFONT를 포함하는 핸들입니다.

HGDIOBJ m_hObject;

CGdiObject::operator !=

두 GDI 개체가 논리적으로 같지 않은지 여부를 확인합니다.

BOOL operator!=(const CGdiObject& obj) const;

매개 변수

obj
기존 CGdiObject에 대한 포인터입니다.

설명

왼쪽의 GDI 개체가 오른쪽에 있는 GDI 개체와 같지 않은지 여부를 확인합니다.

CGdiObject::operator ==

두 GDI 개체가 논리적으로 같은지 여부를 확인합니다.

BOOL operator==(const CGdiObject& obj) const;

매개 변수

obj
기존 CGdiObject에 대한 참조입니다.

설명

왼쪽의 GDI 개체가 오른쪽의 GDI 개체와 같은지 확인합니다.

CGdiObject::operator HGDIOBJ

연결된 Windows GDI 개체에 대한 HANDLE을 검색합니다. 개체가 연결되어 있지 않으면 NULL이 아닙니다.

operator HGDIOBJ() const;

CGdiObject::UnrealizeObject

브러시의 원본을 다시 설정하거나 논리 팔레트를 다시 설정합니다.

BOOL UnrealizeObject();

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

UnrealizeObject 클래스의 CGdiObject 멤버 함수이지만 개체에 CBrush CPalette 대해서만 호출해야 합니다.

개체 UnrealizeObject 의 경우 CBrush 다음에 디바이스 컨텍스트로 선택될 때 지정된 브러시의 원점이 다시 설정되도록 시스템에 지시합니다. 개체가 개체 UnrealizeObjectCPalette 경우 이전에 실현되지 않은 것처럼 팔레트를 실현하도록 시스템에 지시합니다. 다음에 애플리케이션이 지정된 색상표에 대해 CDC::RealizePalette 함수를 호출할 때 시스템은 논리 팔레트를 시스템 팔레트에 완전히 다시 매핑합니다.

이 함수는 UnrealizeObject 스톡 개체와 함께 사용하면 안 됩니다. UnrealizeObject CDC::SetBrushOrg 함수를 통해 새 브러시 원점이 설정될 때마다 함수를 호출해야 합니다. UnrealizeObject 현재 선택한 브러시 또는 현재 선택된 모든 표시 컨텍스트의 색상표에 대해 함수를 호출해서는 안 됩니다.

참고 항목

계층 구조 차트
CBitmap 클래스
CBrush 클래스
CFont 클래스
CPalette 클래스
CPen 클래스
CRgn 클래스