그래픽 개체에 대한 작업
애플리케이션이 디스플레이 또는 프린터 DC를 만든 후 연결된 디바이스에서 그리기를 시작하거나 메모리 DC의 경우 메모리에 저장된 비트맵에 그리기를 시작할 수 있습니다. 그러나 그리기를 시작하기 전에 그리기를 진행하는 동안 기본 개체를 새 개체로 바꿔야 하는 경우가 많습니다.
애플리케이션은 GetCurrentObject 및 GetObject 함수를 호출하여 기본 개체의 특성을 검사 할 수 있습니다. GetCurrentObject 함수는 현재 펜, 브러시, 팔레트, 비트맵 또는 글꼴을 식별하는 핸들을 반환하고 GetObject 함수는 해당 개체의 특성을 포함하는 구조를 초기화합니다.
일부 프린터는 응용 프로그램에서 그리기 속도를 개선하는 데 사용할 수 있는 상주 펜, 브러시 및 글꼴을 제공합니다. EnumObjects 및 EnumFontFamilies라는 두 가지 함수를 사용하여 이러한 개체를 열거할 수 있습니다. 애플리케이션이 상주 펜 또는 브러시를 열거해야 하는 경우 EnumObjects 함수를 호출하여 해당 특성을 검사할 수 있습니다. 애플리케이션이 상주 글꼴을 열거해야 하는 경우 EnumFontFamilies 함수를 호출할 수 있습니다(GDI 글꼴을 열거할 수도 있음).
애플리케이션에서 기본 개체를 바꿔야 한다고 판단되면 다음 생성 함수 중 하나를 호출하여 새 개체를 만듭니다.
이러한 각 함수는 새 개체를 식별하는 핸들을 반환합니다. 애플리케이션이 핸들을 검색한 후 SelectObject 함수를 호출하여 기본 개체를 바꿔야 합니다. 그러나 애플리케이션은 기본 개체를 식별하는 핸들을 저장하고 이 핸들을 사용하여 더 이상 필요하지 않은 경우 새 개체를 바꿔야 합니다. 애플리케이션이 새 개체로 그리기를 마치면 SelectObject 함수를 호출하여 기본 개체를 복원한 다음 DeleteObject 함수를 호출하여 새 개체를 삭제해야 합니다. 개체를 삭제하지 못하면 심각한 성능 문제가 발생합니다.