2016년 4월 12일 화요일

GDI(Graphics Device Interface)

GDI 객체
물감이나 붓 또는 연필의 역할
관련 클래스 물감이나 붓 또는 연필
CPen 클래스
라인의 형태라인의 굵기라인의 색들을 지정하기 위한 객체
라인의 속성을 설정하면 직선사각형 등의 그래픽에서 사용하는 모든 선들은 이 펜을 사용하여 그림
CPen 클래스의 멤버함수 CreatePen
     BOOL CreatePen(
            int nPenStyle, // 펜의 스타일
            int nWidth, // 펜의 너비(굵기)
           COLORREF crColor  //펜의 색상
     );
펜의 스타일 : 선의 종류를 나타내는 값
  - PS_SOLID : 실선 모양
      - PS_DASH : 파선 모양선의 굵기가 1이하인 경우만 유효
      - PS_DOT : 점선선의 굵기가 1이하인 경우만 유효
      - PS_DASHDOT : 일점쇄선선의 굵기가 1이하인 경우만 유효
      - PS_DASHDOTDOT : 이점쇄선선의 굵기가 1이하인 경우만 유효
      - PS_NULL : 선모양이 보이지 않음 
펜의 색상 : RGB 값으로 나타냄
검은색 : RGB(0, 0, 0)
      - 빨간색 : RGB(255, 0, 0)
      - 녹색 : RGB(0, 255, 0)
      - 파란색 : RGB(0, 0, 255)
펜의 스타일 : 선의 종류를 나타내는 값
  - PS_SOLID : 실선 모양
      - PS_DASH : 파선 모양, 선의 굵기가 1이하인 경우만 유효
      - PS_DOT : 점선, 선의 굵기가 1이하인 경우만 유효
      - PS_DASHDOT : 일점쇄선, 선의 굵기가 1이하인 경우만 유효
      - PS_DASHDOTDOT : 이점쇄선, 선의 굵기가 1이하인 경우만 유효
      - PS_NULL : 선모양이 보이지 않음

펜의 색상 : RGB 값으로 나타냄
  - 검은색 : RGB(0, 0, 0)
      - 빨간색 : RGB(255, 0, 0)
      - 녹색 : RGB(0, 255, 0)
      - 파란색 : RGB(0, 0, 255)

펜의 사용법
    (1) 펜 객체를 생성한다.
      CPen pen, *savepen; // 펜 객체 선언
      pen.CreatePen(PS_DOT, 1, RGB(0,0,255));
       => //선의 종류는 파선이고두께는 1이며파란색 펜 
    
    (2) 펜을 DC에 등록한다.
      - 생성된 펜 객체를 SelectObject() 함수를 이용하여 DC에 등록
          savepen=ptrDC->SelectObject(&pen);
    (3) DC를 이용하여 선이나 도형 그리기
      - DC에 펜 객체를 등록한 후에는 등록된 펜의 속성을 가지고 선이나 도형   
     을 그릴 수 있음
   다음 문장은 좌표(0,0)에 가로세로의 픽셀 수가 각각 100인 사각형을 
     그리는 예 
          ptrDC->Rectangle(0, 0, 100, 100);
    (4) DC를 이전 펜으로 원위치 한다.
     - 이전 펜에 대한 포인터가 savepen에 저장되어 있으므로 다음과 같이 
     SelectObject 함수를 이용하여 savepen을 DC에 다시 등록
          ptrDC->SelectObject(savepen);

    (5) 사용이 완료된 펜 객체를 삭제한다.
         ptrDC->DeleteObject();

댓글 없음:

댓글 쓰기