다음을 통해 공유


그래픽 개체에 대한 작업

애플리케이션이 디스플레이 또는 프린터 DC를 만든 후 연결된 디바이스에서 그리기를 시작하거나 메모리 DC의 경우 메모리에 저장된 비트맵에 그리기를 시작할 수 있습니다. 그러나 그리기를 시작하기 전에 그리기를 진행하는 동안 기본 개체를 새 개체로 바꿔야 하는 경우가 많습니다.

애플리케이션은 GetCurrentObject 및 GetObject 함수를 호출하여 기본 개체의 특성을 검사 수 있습니다. GetCurrentObject 함수는 현재 펜, 브러시, 팔레트, 비트맵 또는 글꼴을 식별하는 핸들을 반환하고 GetObject 함수는 해당 개체의 특성을 포함하는 구조를 초기화합니다.

일부 프린터는 응용 프로그램에서 그리기 속도를 개선하는 데 사용할 수 있는 상주 펜, 브러시 및 글꼴을 제공합니다. EnumObjectsEnumFontFamilies라는 두 가지 함수를 사용하여 이러한 개체를 열거할 수 있습니다. 애플리케이션이 상주 펜 또는 브러시를 열거해야 하는 경우 EnumObjects 함수를 호출하여 해당 특성을 검사할 수 있습니다. 애플리케이션이 상주 글꼴을 열거해야 하는 경우 EnumFontFamilies 함수를 호출할 수 있습니다(GDI 글꼴을 열거할 수도 있음).

애플리케이션에서 기본 개체를 바꿔야 한다고 판단되면 다음 생성 함수 중 하나를 호출하여 새 개체를 만듭니다.

그래픽 개체 함수
Bitmap CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap, CreateDIBitmap
브러시 CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush
색상표 CreatePalette
글꼴 CreateFont, CreateFontIndirect
CreatePen, CreatePenIndirect, ExtCreatePen
지역 CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPolygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn

 

이러한 각 함수는 새 개체를 식별하는 핸들을 반환합니다. 애플리케이션이 핸들을 검색한 후 SelectObject 함수를 호출하여 기본 개체를 바꿔야 합니다. 그러나 애플리케이션은 기본 개체를 식별하는 핸들을 저장하고 이 핸들을 사용하여 더 이상 필요하지 않은 경우 새 개체를 바꿔야 합니다. 애플리케이션이 새 개체로 그리기를 마치면 SelectObject 함수를 호출하여 기본 개체를 복원한 다음 DeleteObject 함수를 호출하여 새 개체를 삭제해야 합니다. 개체를 삭제하지 못하면 심각한 성능 문제가 발생합니다.