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 함수는 윈도우 클래스에서 정의한 특성 값을 참조하여 윈도우를 만든다.

'프로그래밍 > 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
Posted by 바람처럼..
|