....................................................................
  OutPut Group Study in API (Application Programming Interface)

  STUDY #4 : HDC

                      Typed by Jo.K.M   1997/12/16 01:51
....................................................................
   *  :  참고      >>> :  참고 어휘   pn : 파라미터

  (1). HDC 에 대해
===========================================

   디바이스 컨텍스트라는 말로 출력 핸들입니다. 우리는 글씨를 쓰거나
   그림을 그릴때 이 출력 핸들을 얻어와서 이를 이용해 출력을 하게 됩니다.

  (2). HDC 출력 핸들 얻어 오기 & 반환 하기
===========================================

    . WM_PAINT 메세지 하에서
      ----------------------
    HDC BeginPaint(HWND hwnd,LPPAINTSTRUCT lpps );
    출력 핸들을 받아 옵니다.

    p2 lpps - 작업영역의 좌표를 기억했다가 나중에 필요시 참조 합니다.

    BOOL EndPaint( HWND hwnd, CONST PAINTSTRUCT *lpPaint );
    출력 핸들을 반환 합니다.

    . 다른 메세지에서
     -----------------
    HDC GetDC( HWND hwnd );
    int ReleaseDC( HWND hwnd, HDC hdc );

    * 만일 어떤 객체의 핸들을 디바이스 컨텍스트 핸들에 선택되게 할라면
      BGDIOBJ SelectObject( HDC hdc, HGDIOBJ hgdiobj );


  (3). HDC를 이용한 여러 쓰고 그리기 기능
  ============================================

   문자열을 출력합니다.
   BOOL TextOut( HDC hdc,int nXStart, int nYStart, LPCSTR lpString, int cbString );

   p1 hdc - 얻은 디바이스 출력 핸들
   p2-p3  - 출력 좌표
   p4 lpString - 출력할 문자열
   p5 cbString - 출력될 문자열의 길이

   사각 좌표 안에 문자열을 출력 합니다.
   int DrawText( HDC hdc, LPCSTR lpszStr, int cchStr, LPRECT lpr, UINT wFormat );

   p1 hdc - 얻어온 출력 핸들
   p2 lpszStr - 출력할 문자열
   p3 cchStr - 출력할 문자열의 길이
   p4 lpr -  사각 좌표
   p5 wFormat - 출력할 양식(오른편,중간,왼편등)

   Ex)
       HDC hDC;
       RECT rect;
       PAINTSTRUCT ps;
       char szPrint = "This is test";
               :
       case WM_PAINT:   GetClientRect(hWnd, &rect);
                        hDC = BeginPaint(hWnd,&ps);
                        TextOut(hDC, 10, 10, szPrint, strlen(szPrint));
                        DrawText(hDC, szPrint,strlen(szPrint), &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
                        EndPaint(hWnd,&ps);
                        return FALSE;

       WM_PAINT는 윈도가 화면을 다시 그릴려고 하면 발생하는 메세지입니다.

+ Recent posts