그래픽 개체에 대한 작업
애플리케이션에서 디스플레이 또는 프린터 DC를 만든 후 연결된 디바이스에서 그리기를 시작하거나 메모리 DC의 경우 메모리에 저장된 비트맵에 그리기를 시작할 수 있습니다. 그러나 그리기를 시작하기 전에 그리기를 진행하는 동안 기본 개체를 새 개체로 바꿔야 하는 경우가 종종 있습니다.
애플리케이션은 GetCurrentObject 호출하고 GetObject함수를기본 개체의 특성을 검사할 수 있습니다. GetCurrentObject 함수는 현재 펜, 브러시, 색상표, 비트맵 또는 글꼴을 식별하는 핸들을 반환하고 GetObject 함수는 해당 개체의 특성을 포함하는 구조를 초기화합니다.
일부 프린터는 응용 프로그램에서 그리기 속도를 향상시키는 데 사용할 수 있는 상주 펜, 브러시 및 글꼴을 제공합니다. 두 함수를 사용하여 이러한 개체를 열거할 수 있습니다. EnumObjects 및 EnumFontFamilies. 애플리케이션이 상주 펜 또는 브러시를 열거해야 하는 경우 EnumObjects 함수를 호출하여 해당 특성을 검사할 수 있습니다. 애플리케이션이 상주 글꼴을 열거해야 하는 경우 EnumFontFamilies 함수를 호출할 수 있습니다(GDI 글꼴을 열거할 수도 있습니다).
애플리케이션에서 기본 개체를 대체해야 한다고 결정하면 다음 생성 함수 중 하나를 호출하여 새 개체를 만듭니다.
그래픽 개체 | 기능 |
---|---|
비트맵 | CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap, CreateDIBitmap |
브러시 | CreateBrushIndirect, CreateDIBPatternBrush, CreateDIBPatternBrushPt, CreateHatchBrush, CreatePatternBrush, CreateSolidBrush |
색상표 | CreatePalette |
글꼴 | CreateFontCreateFontIndirect |
펜 | CreatePen, CreatePenIndirect, ExtCreatePen |
부위 | CreateEllipticRgn, CreateEllipticRgnIndirect, CreatePolygonRgn, CreatePolyPo를 lygonRgn, CreateRectRgn, CreateRectRgnIndirect, CreateRoundRectRgn |
이러한 각 함수는 새 개체를 식별하는 핸들을 반환합니다. 애플리케이션이 핸들을 검색한 후 SelectObject 함수를 호출하여 기본 개체를 바꿔야 합니다. 그러나 애플리케이션은 기본 개체를 식별하는 핸들을 저장하고 더 이상 필요하지 않은 경우 이 핸들을 사용하여 새 개체를 바꿔야 합니다. 애플리케이션이 새 개체로 그리기를 마치면 SelectObject 함수를 호출하여 기본 개체를 복원한 다음 DeleteObject 함수를 호출하여 새 개체를 삭제해야 합니다. 개체를 삭제하지 못하면 심각한 성능 문제가 발생합니다.