프로그래밍/MFC

윈도우 클래스의 종류

이재만박사 2020. 11. 23. 20:50

윈도우 클래스는 통용되는 범위에 따라 세 가지 종류


등록 시기와 파괴 시기가 다름



1. 시스템 전역 클래스


운영 체제가 부팅될 때 등록


컨트롤을 만들 때 사용


button, edit, scrollbar, listbox


클래스 이름이 시스템에 의해 미리 정해짐


운영 체제가 직접 등록


응용 프로그램은 이 클래스를 등록할 필요가 없음


파괴할 수도 없음


시스템은 응용 프로그램이 실행될 때 시스템 전역 클래스의 복사본을 전달


button, edit 등이 이미 등록되어 있으므로 쓰기만 하면 됨


복사본을 사용해서 서브 클래싱 등의 방법으로 수정하더라도 다른 프로그램에 영향 안 줌


메뉴와 대화상자도 윈도우의 일종



2. 응용 프로그램 전역 클래스


주로 DLL에 의해 등록


프로세스의 모든 모듈에서 이 클래스를 사용


여러 프로그램이 공유해야 할 커스텀 컨트롤 을 만들 때 사용


DLL을 로드해서 이 클래스를 사용


클래스 스타일에 GS_GLOBALCALSS 스타일을 지정


comctl32.dll 에 의해 제공되는 공통 컨트롤


프로그래스, 트리 뷰, 리스트 뷰, 툴바 등


표준 컨트롤과는 달리 약간의 초기화 코드가 필요



3. 응용 프로그램 로컬 클래스


메인 윈도우나 차일드 또는 커스텀 컨트롤을 만들기 위해 프로그램 선두에서 등록하는 클래스


해당 프로그램 내부에서만 사용


윈도우 클래스를 등록한 프로그램이 종료되면  윈도우 클래스도 같이 파괴