....................................................................
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는 윈도가 화면을 다시 그릴려고 하면 발생하는 메세지입니다.
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는 윈도가 화면을 다시 그릴려고 하면 발생하는 메세지입니다.
'KB > MFC/Win32' 카테고리의 다른 글
텍스트 크기 알기 (0) | 2004.03.19 |
---|---|
STUDY #6 : Window with Menu in API (0) | 2004.03.19 |
STUDY #3 : Icon & Cursor by USER & TIMER (0) | 2004.03.19 |
STUDY #2 : Basic Message & Window treatment in WNDPROC (0) | 2004.03.19 |
STUDY #1 : Basic structure Code in Windows's API (0) | 2004.03.19 |