윈도우의 3가지 핵심 모듈
커널 : 메모리 관리, 프로그램 실행.
User : 사용자 인터페이스, 윈도우 관리
GDI : 화면처리 및 그래픽
DC
GDI 모듈(운영체제에서 화면 처리와 그래픽을 관리)에 의해 관리.
해당하는 윈도우의 표시영역, 그리기 위한 객체들 관리.
멀티tasking 환경에 의해 탄생.
DC를 얻는방법
HDC GetDC(HWND hWnd);
특정 윈도우의 클라이언트 영역에 대한 모니터 출력 DC를 가리키는 핸들을 얻는다.
int ReleaseDC(HWND hWnd, HDC hDC);
다른 응용 프로그램에 의해 사용할 수 있도록 DC를 해제한다.
WM_PAINT
지워졌던 영역(무효화 영역)을 다시 그려야 할 때 발생하는 메세지
HDC BeginPaint(HWND hwnd, LPPAINTSTRUCT lpPaint);
무효 영역에 관한 정보와 함께 PAINTSTRUCT 구조체를 채우고 그리기 위한 특정 윈도우를 준비한다.
BOOL EndPaint(HWND hwnd, CONST PAINTSTRUCT* lpPaint);
특정 윈도우의 그리기가 끝났음을 알린다. BeginPaint함수가 먼저 호출되어야 하고 그리기가 완료할 상황이어야 한다.
문자출력
BOOL TextOut(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString);
lpString문자열을 cbString바이트만큼 X,Y위치에 출력한다.
UINT SetTextAlign(HDC hdc, UINT fMode);
fMode 정렬값에 맞추어 문자열을 출력한다.
int DrawText(HDC hdc, LPCTSTR lpString, int nCount, LPRECT lpRECT, UINT uFormat);
lpRect영역 크기의 uFormat정렬 상태의 글상자를 생성한 후 nCount바이트만큼 lpString 문자열을 출력.
도형출력
COLORREF SetPixel(hdc, nXPos, nYPos, clrref);
X,Y위치의 clrref색의 점을 출력한다. 리턴값은 실제 출력한 점의 색깔.
DWORD MoveToEx(hdc, x, y, lpPoint);
BOOL LineTo(hdc, xEnd, yEnd);
x,y부터 xEnd, yEnd까지 선을 그린다.
BOOL Rectangle(hdc, nLeftRect, nTopRect. nRightRecet, nBottomRect);
사각형을 그린다.
BOOL Ellipse(hdc, nLeftRect, nTopRect. nRightRecet, nBottomRect);
타원을 그린다.
메세지박스
int MessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);
오너윈도우 hWnd에 대해 lpCaption의 제목과 lpText의 내용으로 uType형태의 메세지 박스를 출력한다.
리턴값은 사용자가 선택(입력)한 값이다.
BOOL MessageBeep(UINT uType);
스피커를 통해 간단한 비프음을 낸다.
'컴퓨터 공부 > Win32 API 프로그래밍' 카테고리의 다른 글
[4월 29일 2교시] 입력2 + 리소스1 (0) | 2009.04.29 |
---|---|
[4월 29일 1교시] 입력1 (0) | 2009.04.29 |
[4월 28일 2교시] WinMain 기본 프로그램 분석2 (0) | 2009.04.28 |
[4월 28일 1교시] WinMain 기본 프로그램 분석1 (0) | 2009.04.28 |
[4월 27일 3교시] (0) | 2009.04.27 |