윈도우 클래스의 종류
1) 시스템 전역 클래스 : 운영체제에 미리 등록되어 있는 윈도우 클래스이다. (컨트롤, 메뉴, 대화상자 등..)
2) 응용 프로그램 전역 클래스 : 주로 DLL에 의해 등록되며 여러 프로그램에서 공유할 커스텀 컨트롤을 만드는데 사용.
3) 응용 프로그램 로컬 클래스 : 응용 프로그램 자신의 메인 윈도우, 차일드 윈도우, 커스텀 컨트롤을 만드는데 사용.
윈도우즈 API프로그래밍에서 윈도우를 만드는 순서를 살펴보면 다음과 같다.
1. 윈도우 클래스를 만든다. (WNDCLASS)
WNDCLASS는 총 10개의 멤버로 구성되며 중요한 멤버 3가지를 살펴보자.
- lpszClassName : 등록하고자 하는 윈도우 클래스의 이름
- lpfnWndProc : 메시지 처리 함수 지정.
- hInstance : 이 윈도우 클래스를 등록한 응용 프로그램의 인스턴스 핸들. (WinMain의 hInstnace)
2. RegisterClass 함수로 윈도우 클래스를 등록한다.
3. CreateWindow로 윈도우를 생성한다.
원형 : HWND CreateWindow(lpszClassName, lpszWindowName, dwStyle, x, y, nWidth, nHeight, hwndParent, hmenu, hinst, lpvParam)
lpszClassName : WNDCLASS에 등록한 윈도우 클래스 지정
lpszWindowName : 윈도우 타이틀바의 문자열
메인 윈도우말고도 대화상자, 버튼, 에디트 등의 컨트롤도 모두 윈도우이다. 이런 컨트롤의 경우는 운영체제에 등록되어 있어 (3)의 CreateWindow 만으로 생성가능하다.
윈도우 창을 띄우는 소스
------------------------------------------------------------------------------
WNDCLASS 속성 변경
(32bit)
- DWORD GetClassLong(HWND hWnd, int nIndex);
- DWORD SetClassLong(HWND hWnd, int nIndex, LONG dwNewLong);
(32bit & 64bit)
- LONG_PTR GetClassLongPtr(HWND hWnd, int nIndex);
- ULONG_PTR SetClassLongPtr(HWND hWnd, int nIndex, LONG_PTR dwNewLong);
'Programming > Win_API' 카테고리의 다른 글
윈도우즈 API - 메모리 관련 함수2 (GetProcessHeap, HeapAlloc, HeapFree, HeapCreate) (0) | 2012.09.11 |
---|---|
윈도우즈 API - 메모리 관련 함수1 (VirtualAlloc, VirtualFree, VirtualProtect) (1) | 2012.09.07 |
윈도우즈 API - 파일 관련 함수(CreateFile, WriteFile, ReadFile) (4) | 2012.09.03 |
윈도우즈 API - 윈도우 창 관련 함수 (1) | 2012.08.23 |
자료형 LPSTR, LPWSTR, LPTSTR, TCHAR (0) | 2012.08.18 |