컴퓨터 공부/Win32 API 프로그래밍

[4월 30일 3교시] 그래픽4 + 컨트롤

려리군 2009. 4. 30. 16:57

메모리DC

HDC CreateCompatibleDC(HDC hDC);

기능 : 화면 DC와 동일한 특성을 가지는 DC를 메모리에 만들어 그 핸들을 리턴.

hDC : 화면 DC

리턴 : 메모리 DC

※ 메모리 DC만이 비트맵을 선택(select)할 수 있다.


BitBlt

BOOL BitBlt(HDC dest, int nXDest, int nYDest, int nWidth, int nHeight, HDC src, int nXSrc, int nYSrc, DWORD dwRop);

- 기능

DC 간의 영역끼리 고속복사.

메모리 DC의 비트맵을 화면DC으로 출력(복사).

- 전달인자

HDC dest : 복사 될 DC

int nXDest : 복사 될 DC의 왼쪽 좌표

int nYDest : 복사 될 DC의 상단 좌표

int nWidth : 복사 될 DC의 폭

int nHeight : 복사 될 DC의 높이

HDC src : 복사 원본이 저장된 DC(비트맵)

int nXSrc : 원본 DC의 왼쪽 좌표

int nYSrc : 원본 DC의 상단 좌표

DWORD dwRop : 점 출력 연산 방식을 결정

- 리턴 : 성공시 0이 아닌 값. 실패시 0.

- 참고주소 : http://msdn.microsoft.com/en-us/library/dd183370(VS.85).aspx


StretchBlt

BOOL StretchBlt(HDC dest, int nXDest, int nYDest, int nWidth, int nHeight, HDC src, int nXSrc, int nYSrc, 

int nWidthSrc, int nHeightSrc DWORD dwRop);

- 기능 : DC 간의 영역끼리 확대 혹은 축소하여 복사.

- 전달인자

int nXSrc : 원본 DC의 폭.

int nYSrc : 원본 DC의 높이.

- 나머지는 BitBlt와 동일

- nXDest > nXsrc 또는 nYDest > nYsrc : 그림이 확대된다.

- nXDest < nXsrc 또는 nYDest < nYsrc : 그림이 축소된다.

참고주소 : http://msdn.microsoft.com/en-us/library/dd145120(VS.85).aspx


글자꾸미기

CreateFont

HFONT CreateFont(

int nHeight, // 폰트의 높이

int nWidth, // 문자 폭 평균

int nEscapement, // escapement벡터(첫글자부터 끝글자까지 라인)과 X축 사이의 각도 조절

int nOrientation, // 한글자의 baseline과 X축 사이의 각도 조절

int fnWeight, // 폰트 무게

DWORD fdwItalic, // 이텔릭 속성 옵션

DWORD fdwUnderline, // 밑줄 속성 옵션

DWORD fdwStrikeOut, // 취소선 속성 옵션

DWORD fdwCharSet, // 문자 셋 식별자

DWORD fdwOutputPrecision, // 출력 정밀도 설정

DWORD fdwClipPrecision, // clipping 정밀도 설정

DWORD fdwQuality, // 출력의 질을 설정

DWORD fdwPitchAndFamily, // pitch와 family 설정

LPCTSTR lpszFace // 폰트 이름

);

- 참고주소 : http://msdn.microsoft.com/en-us/library/dd183499.aspx


HFONT CreateFontIndirect(const LOGFONT *lpLogFont);

LogFont : CreateFont 함수의 전달인자를 구조체 포인터 형태로 전달.

- 참고주소 : http://msdn.microsoft.com/en-us/library/dd183500(VS.85).aspx


문자열 색상

COLORREF SetTextColor(HDC hDC, COLORREF crColor);

- 기능

- hDC : 출력할 DC

- crColor : 바꾸고자 하는 문자열 색상.

- 리턴 : 성공시 이전 문자열 색상. 실패시 CLR_INVALID

- 참고주소 : http://msdn.microsoft.com/en-us/library/dd145093(VS.85).aspx


COLORREF SetBkColor(HDC hDC, COLORREF crColor);

- hDC : 출력할 DC

- crColor : 바꾸고자 하는 문자열 배경색상.

- 리턴 : 성공시 이전 문자열 색상. 실패시 CLR_INVALID


int SetBkMode(HDC hDC, int iBkMode);
글자 배경색 모드를 바꾼다.
- hDC : 출력할 DC
- iBkMode
OPAQUE : 현재 설정된 배경색을 사용.
TRANSPARENT : 현재 배경색은 투명한 색.
- 리턴 : 성공시 이전 배경 모드. 실패시 0


컨트롤


윈도우 : 사용자 인터페이스를 포함하는 (주로) 사각 영역. 

*. 사용자의 입력을 메세지 큐에서 가져와 윈도우 프로시저를 통해 처리하고 출력함.


컨트롤 : 하나의 윈도우. (윈도우 프로시저를 가지고 있음.)

- 미리 (운영체제 부팅시) 정의된 윈도우 클래스 사용.

 - 생성시기

design time : 다이얼로그 안에 컨트롤을 만들 때.

run time : 실행시 컨트롤을 만들 때. (CreateWindow)