typedef struct tagWNDCLASS
{
UNIT style;
WNDPROC lpfnWndProc;
int cbClsExtra;
int cbWndExtra;
HINSTANCE hInstace;
HICON hIcon;
HCURSOR hCursor;
HBRUSH hbrBackground;
LPCSTR lpszMenuName;
LPCSTR lpszClassName;
}WNDCLASS;
lpszClassName - 등록하고자 하는 윈도우 클래스의 이름을 나타내는 문자열이며 윈도우 클래스의 구분에 사용된다.
hInstace - 윈도우 클래스를 등록한 응용 프로그램의 인스턴스 핸들이다. 이 멤버가 지정한 응용 프로그램이 이 윈도우 클래스의 소유주가 되며 소유주가 파괴되면 윈도우 클래스도 같이 파괴된다. 메인 윈도우를 만들 때는 WinMain으로 전달된 hHinstance 인수를 그대로 대입하면 된다.
lpfnWndProc - 메시지 처리 함수를 지정한다. 이 클래스로부터 만들어진 윈도우에 메시지가 전달되면 이 멤버가 지정하는 함수로 메시지가 전달되어 윈도우 고유의 처리를 하게 된다. 메인 윈도우 하나로 구성된 프로그램이라면 이 멤버의 값은 선택의 여지없이 WndProc이 될 것이나 차일드 윈도우나 팝업 윈도우가 있다면 다른 이름이 될 수도 있다.
hCursor - 클래스 커서를 지정한다. 이 클래스로부터 만들어진 윈도우의 작업영역에 마우스가 위치해 있을 때 이 멤버가 지정하는 커서가 사용된다. 리소스에 커서를 추가하고 LoadCursor 함수로 읽어 커서 핸들을 대입하거나 디폴크 커서 중 하나를 대입한다.
hIcon - 타이틀 바의 좌상단에 보여줄 아이콘과 윈도우가 최소화되었을 때 보여줄 아이콘을 지정한다. NULL일 경우 아이콘을 그려야할 때 운영체제가 WM_ICONERASEBKGND 메시지를 보내는데 이 때 원하는 아이콘을 직접 그려야한다.
hbrBackground - 윈도우의 작업영역을 칠할 배경 브러시를 지정한다. GetStockObject나 그 외 브러시를 만드는 함수를 사용하여 브러시 핸들을 얻은 후 이 멤버에 대입한다.
lpszMenuName - 이 클래스로부터 만들어진 윈도우가 사용할 메뉴를 지정한다.
style - 윈도우 클래스의 스타일을 지정한다. CreateWindow 에서 지정하는 개별 윈도우의 스타일과는 다르지만 결국은 이 클래스로부터 만들어지는 윈도우에 영향을 미친다.
cbClsExtra - 윈도우 클래스에서 사용하고자 하는 여분의 메모리양을 바이트 단위로 지정한다. 운영체제는 윈도우 클래스를 등록할 때 이 멤버가 지정하는만큼의 메모리를 추가로 할당한다.
cbWndExtra - cbClsExtra와 유사하되 개별 윈도우에서 사용하고자 하는 여분의 메모리양을 지정한다. 운영체제는 CreateWindow로 개별 윈도우를 만들 때마다 이 멤버가 지정하는만큼의 메모리를 추가로 할당한다.
출처 - 윈도우즈 API 정복 , 김상형 지음
2010. 1. 25. 16:04