winMain 함수에서 가장 중요한 일은 메인 윈도우를 만드는 일이다. 그러기 위해서는 윈도우 클래스를 먼저 등록한 후 CreateWindow 함수를 호출 해야 한다. 윈도우 클래스는 만들어질 윈도우의 여러 가지 특성을 정의하는 구조체이며 windows.h에 다음과 같이 정의 되어 있다.
typedef struct tagWNDCLASS
{
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
} WNDCLASS;
style : 윈도우의 스타일을 정의한다. 즉, 윈도우가 어떤 형태를 가질 거인가를 지정하는 멤버이다.
lpfnWndProc : 이 멤버는 윈도우의 메시지 처리 함수를 지정한다. 메시지가 발생할 때 마다 이 멤버가 지정하는 함수가 호출되며, 이 함수가 모든 메시지를 처리한다. 흔히 말하는 메시지 콜백 함수라고 보면 된다.
cbClsExtra, cbWndExtra : 일종의 예약 영역이다. 윈도우가 내부적으로 사용하며 특수한 목적에 사용되는 공간이다. 사용하지 않을때는 0으로 지정한다.
hInstance : 이 윈도우 클래스를 등록하는 프로그램의 번호이며, WinMain의 인수로 전될된 hInstance값을 그대로 넣으면된다.
hIcon , hCursor : 이 윈도우가 사용할 마우스 커서와 아이콘을 지정한다.
hbrBackground : 윈도우의 배경 색상을 지정한다.
lpszMenuName : 이 프로그램이 사용할 메뉴를 지정한다.
lpszClassName : 윈도우 클래스의 이름을 문자열로 정의하여서 나중에 CreateWindow 함수에 전달되며, Createwindow 함수는 윈도우 클래스에서 정의한 특성 값을 참조하여 윈도우를 만든다.
typedef struct tagWNDCLASS
{
UINT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstance;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
} WNDCLASS;
style : 윈도우의 스타일을 정의한다. 즉, 윈도우가 어떤 형태를 가질 거인가를 지정하는 멤버이다.
lpfnWndProc : 이 멤버는 윈도우의 메시지 처리 함수를 지정한다. 메시지가 발생할 때 마다 이 멤버가 지정하는 함수가 호출되며, 이 함수가 모든 메시지를 처리한다. 흔히 말하는 메시지 콜백 함수라고 보면 된다.
cbClsExtra, cbWndExtra : 일종의 예약 영역이다. 윈도우가 내부적으로 사용하며 특수한 목적에 사용되는 공간이다. 사용하지 않을때는 0으로 지정한다.
hInstance : 이 윈도우 클래스를 등록하는 프로그램의 번호이며, WinMain의 인수로 전될된 hInstance값을 그대로 넣으면된다.
hIcon , hCursor : 이 윈도우가 사용할 마우스 커서와 아이콘을 지정한다.
hbrBackground : 윈도우의 배경 색상을 지정한다.
lpszMenuName : 이 프로그램이 사용할 메뉴를 지정한다.
lpszClassName : 윈도우 클래스의 이름을 문자열로 정의하여서 나중에 CreateWindow 함수에 전달되며, Createwindow 함수는 윈도우 클래스에서 정의한 특성 값을 참조하여 윈도우를 만든다.
'프로그래밍 > API' 카테고리의 다른 글
[API] 메시지 루프 (0) | 2011.08.02 |
---|---|
[API] 윈도우 생성.. (0) | 2011.08.02 |
[API] 유니코드 (0) | 2011.07.31 |
[API] 핸들에 대한 이해.. (0) | 2011.07.31 |
[API] API 란 무엇인가. (0) | 2011.07.31 |