블로그 이미지
vee

카테고리

분류 전체보기 (17)
void (1)
Information (0)
Develop (5)
Linux (3)
Hardware (3)
Operating system (5)
Total
Today
Yesterday

달력

« » 2026.7
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

typedef struct tagWNDCLASSW {

UINT style;

WNDPROC lpfnWndProc;

int cbClsExtra;

int cbWndExtra;

HINSTANCE hInstance;

HICON hIcon;

HCURSOR hCursor;

HBRUSH hbrBackground;

LPCWSTR lpszMenuName;

LPCWSTR lpszClassName;

}

 

UINT style;

윈도우 스타일, 즉 윈도우가 어떤 형태를 가질 것인가를 지정한다.

가장 많이 사용되는 값은 CS_HEADRAW|CS_VREDRAW이다.

특이하게도 OR 연산자를 이용하는 기법을 사용한다. (고성능, 고효율)

 

WNDPROC lpfnWndProc;

윈도우의 메시지 처리 함수를 지정한다. – 함수 포인터

메시지가 발생할 때 마다 이 멤버가 지정한 함수가 호출되며 모든 메시지를 처리하게 된다.

WndProc을 대입하게 된다.

 

int cbClsExtra;

int cbWndExtra;

일종의 예약 영역으로서 아주 특수한 목적에 사용되는 여분의 공간이다.

예약 영역을 사용하지 않을 때는 0으로 지정한다.

HINSTANCE hInstance;

이 윈도우 클래스를 등록하는 프로그램의 번호(핸들)이며 WinMain의 인수로 전달된 hInstance값을 그대로 대입하게 된다.

핸들은 운영체제가 임의로 생성하는 값으로 프로그래머가 특정한 값을 생각할 필요는 없다.

 

HICON hIcon;

HCURSOR hCursor;

이 윈도우가 사용할 마우스 커서와 아이콘을 지정하는 변수이다.

LoadCursor함수와 LoadIcon함수를 이용하여 이 멤버에 대입하면 된다.

 

HBRUSH hbrBackground;

윈도우의 배경 색상을 채색할 브러시를 지정하는 멤버이다.

GetStockObject 함수를 이용하여 윈도우에서 제공하는 브러시를 지정하거나 COLOR_WINDOW같은 시스템 색상을 지정할 수도 있다.

 

LPCWSTR lpszMenuName;

이 프로그램(윈도우)이 사용할 메뉴를 지정한다.

메뉴는 리소스 에디터에 의해 별도로 만들어져 링크시 같이 합쳐지며 메뉴를 사용하지 않을 경우 NULL을 대입한다.

 

LPCWSTR lpszClassName;

윈도우 클래스의 이름을 문자열로 정의하는 멤버.

여기서 지정한 이름은 CreteWindow함수에 전달되며 CreteWIndow 함수는 윈도우 클래스에서 정의한 특성 값을 참조하여 윈도우를 만든다.

 

WNDCLASS는 WinUser.h에 정의되어 있다.

WNDCLASS는 프로젝트가 유니코드이거나 멀티바이트일 때 다르게 정의된다.

#ifdef UNICODE

typedef WNDCLASSW WNDCLASS;

typedef PWNDCLASSW PWNDCLASS;

typedef NPWNDCLASSW NPWNDCLASS;

typedef LPWNDCLASSW LPWNDCLASS;

#else

typedef WNDCLASSA WNDCLASS;

typedef PWNDCLASSA PWNDCLASS;

typedef NPWNDCLASSA NPWNDCLASS;

typedef LPWNDCLASSA LPWNDCLASS;

#endif // UNICODE

WNDCLASSA 는 멀티바이트 Windows 응용프로그램에서 사용되며
WNDCLASSW는 유니코드 Windows 응용프로그램에서 사용된다.

두 클래스의 차이는 문자열을 LPCSTR 을 사용하느냐 아니면 LPCWSTR를 사용하느냐의 차이만 존재한다.

'Develop > Windows API' 카테고리의 다른 글

Windows API – 2. WinMain, WndProc  (0) 2013.08.29
Windows API – 1. Basis of Windows Programming  (0) 2013.08.28
Posted by vee
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함