티스토리 뷰

기초 부분에서 보았듯이 윈도우 클래스를 생성하려면

WINDOWCLASS 구조체 변수로 선언해주면 되는 것을 알 수 있다.

 

생성은 간단했지만 정의는 생각 보다 길다.

기초에 있는 코드에서 보면

 

1
2
3
4
5
6
7
8
9
10
WndClass.style = NULL;
WndClass.lpfnWndProc = (WNDPROC)WndProc;
WndClass.cbClsExtra = 0;
WndClass.cbWndExtra = 0;
WndClass.hInstance = hInstance;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszClassName = L"test";
WndClass.lpszMenuName = NULL;
cs

 

이와 같이 구조체의 멤버 변수에 여러 값을 넣는다.

이렇든 정의는 그냥 생성한 구조체의 멤버 변수에 알맞는 값을 넣어주면 되는 것이다.

일반적인 프로그램은 대게 위와 같이 정의하면 무난하다.

 

그래도 가끔 다른 값을 넣는 몇몇 멤버 변수에 대해 살펴 보자면 아래를 참조하길 바란다.

 

style

윈도우를 생성 했을 때 여러 가지 영향을 주는 함수인데 넣은 수 있는 값 중에 예를 들어

CS_NOCLOSE를 넣어주면 윈도우의 닫기 버튼이 비활성화 된다. (다른 값은 아래에 참조)

 

lpfnWndProc

메세지 처리를 할 WNDPROC 함수의 이름을 지정해주는 변수이다. 설명하지 않았지만 WndProc의 이름은 다른 것으로 해도 되며 윈도우 클래스에 처리를 원하는 WNDPROC 이름만 넣어주면 된다.

 

hIcon

윈도우 타이틀에 출력 되는 아이콘을 지정하고 있는 변수이다. 기본적으로 제공하는 아이콘은 아래를 참조하면 된다.

 

hCursor

hicon처럼 커서를 지정하는 변수이다. 이것도 아래를 참조

 

hbrBackground

배경색을 넣어주는 변수이다. 넣은 방법은 다양하므로 생략

 

lpszClassName

윈도우를 생성할 때 윈도우 클래스 이름을 인자로 넣는데 그 때 여기에 넣어준 문자열 쓰면 그 윈도우 클래스를 가지고 윈도우를 생성한다.

 

 

끝~!


#C, #C++, #GUI, #WinAPI, #윈도우, #클래스, #Window, #Class, #WNDCLASS

'C & C++ > API' 카테고리의 다른 글

부모 윈도우와 자식 윈도우 설정  (0) 2014.11.06
컨트롤 윈도우  (0) 2014.11.05
메세지 처리 - WndProc() - 1 -  (0) 2014.11.04
윈도우 생성 - CreateWindow()  (0) 2014.10.23
윈도우 프로그래밍 기초  (0) 2014.10.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday