Search

tagWNDCLASS

[- Disclaimer -] 아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
Window Class
✦ Window 창 생성용 Class
typedef struct tagWNDCLASS { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra: HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor HBRUSH hbBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; } WNDCLASS;
Plain Text
복사
tagWNDCLASS.style
✦ Window 창 형태
✧ Ex) CS_HREDRAW | CS_VREDRAW
→ 수평?수직 크기 변경 시 Windows 다시 그림?
tagWNDCLASS.lpfnWndProc
✦ Window Procedure 함수 지정
✧ 통상 WndProc()
tagWNDCLASS.cbClsExtra, tagWNDCLASS.cbWndExtra
✦ Reserved 영역
✧ 미사용 시 0
tagWNDCLASS.hInstance
✦ 해당 Window Class를 등록한 프로그램 번호
✧ 통상 WinMain()의 hInstance를 전달
✦ 프로그램 종료 시 등록 취소 필요
tagWNDCLASS.hIcon
✦ 사용할 Window 창 Icon
tagWNDCLASS.hCursor
✦ 사용할 Window 창 Cursor
tagWNDCLASS.hbrBackground
✦ Windows 창 배경색
✧ 방법 1): GetStockObject()로 Brush 지정
✧ 방법 2): COLOR_WINDOW로 지정
✦ Ex) WHITE_BRUSH
✧ 흰색
tagWNDCLASS.lpszMenuName
✦ Windows 창 Menu
✦ Runtime에 생성되지 않음
✧ 미리 Resource Edit에 만들어진 걸 Link 시에 병합
✦ 미사용 시 NULL
tagWNDCLASS.lpszClassName
✦ Window Class명
✧ 통상 실행 파일명을 주지만 어쨌든 자유롭게
✧ CreateWindow()의 lpszClassName에 전달용