GDI+를 편하게 사용하기 위한 편의 클래스

chococookie·2022년 6월 11일
0

이 글은 네이버 카페 MyThread에 있는 도면 그리기 예제 step1을 공부하며 정리한 글입니다.
도면 그리기 프로그램을 구현할 때 네이버 카페 MyThread에 있는 TW_DCP 클래스를 사용하였습니다.

TW_DCP 클래스는 GDI+함수를 편하게 사용할 수 있도록 김성엽 선생님께서 만들어 놓으신 클래스입니다. 이 클래스는 더블 버퍼링 개념을 사용하고 있습니다. 더블 버퍼링이란 화면에 그림을 바로 출력하는 것이 아니라, 보이지 않는 Bitmap에 그림의 일부를 하나씩 그리고 작업을 진행하고나서, 하나의 Image가 완성이 되면 화면에 출력하는 방식입니다.
TW_DCP 클래스는 GDI+함수를 사용하여 배경색을 설정할 수 있습니다. 그리고 사각형, 타원, 선, 다각형을 그리는 함수, 그리고 문자열을 출력할 수 있는 함수 등이 만들어져 있어 GDI+를 쉽게 사용할 수 있게 도와줍니다.



아래의 링크를 통해 네이버 카페 MyThread에 가면 TW_DCP 클래스를 소스 코드를 확인할 수 있으며, 다운로드하여 사용할 수 있습니다.
https://cafe.naver.com/mythread/194



관련 이론

< static 멤버 변수 초기화>
static 멤버 변수는 특정 클래스에서 초기화할 수 없기 때문에 외부에서 초기화 해야합니다.

< 주요 함수 설명>

  • Init()
    DCP객체를 생성하는 함수입니다.
    생성하는 객체가 첫번째 객체인 경우 예외 처리합니다.

  • CreateDCP()
    이미지 출력용 그래픽 객체를 생성하는 함수입니다.

  • 사각형을 그리는 함수들 정의
    GDI+는 사각형의 선을 그리는 함수와 사각형의 채우기를 하는 함수 두개로 나뉩니다.

    사각형을 그리는 GDI+ 함수
    FillRectangle(): 사각형의 채우기 함수
    DrawRecttangle(): 사각형의 선을 그리는 함수

    위 두 함수를 사용하여 사각형을 그리는 함수들을 정의하였습니다.

  • 타원을 그리는 함수들 정의

    원을 그리는 GDI+ 함수
    DrawEllipse(): 원을 그리는 함수

    위 함수를 사용하여 원을 그리는 함수들을 정의하였습니다.

  • 선을 그리는 함수들을 정의

    선을 그리는 GDI+ 함수
    DrawLine(): 선을 그리는 함수

    위 함수를 사용하여 선을 그리는 함수들을 정의하였습니다.



TW_DCP를 이용한 예제

선을 그리는 함수, 색이 채워진 사각형을 그리는 함수, 그리고 색이 채워진 원을 그리는 함수를 이용하여 도형을 그린 결과입니다.

profile
MFC를 부숴보자

0개의 댓글