지난 강의에 이은 자동완성된 코드에 대한 설명.
main 함수에 보면

프로그램의 메인 무한루프를 볼 수 있다.
AccelTable 이라는 것은 마찬가지로 리소스 뷰에 있는 것을 로드해온다.

IDC_CLIENT 라는 걸 클릭해보면

단축키 테이블이 나와 있다.
IDM_ABOUT 이라는 ID 는 리소스 뷰의 Menu > IDC_CLIENT 에 있는데

조회해보면 정보 창의 ID 값이다.
그래서 프로그램을 실행하고 Alt + / 또는 Alt + ? 를 눌러보면

정보 창을 확인할 수 있다.
GetMessage 함수는 운영체제로부터 message queue 에 들어온 정보를 순차적으로 처리하는 역할.
msg 의 주솟값을 넘겨줘서 마우스 위치, 메시지 시간, 파라미터 정보 등을 가져온다.

메시지 반응형으로 동작하기 때문에 message queue 에 메시지가 없으면 무한정 대기함.
msg.message == WM_QUIT 가 들어오면 0이 반환되어 while 문이 종료된다.
실험삼아 프로그램을 실행시킨 뒤, 윈도우 창을 내려두고 while 문 안에 중단점을 걸어놓으면...
while 문 안으로 들어오지 않는다. 윈도우가 포커스를 벗어났기 때문에 메시지가 없는 것으로 보임.
윈도우 창을 다시 클릭하는 순간 while 문에 중단이 걸리는 걸 확인해보자.
WndProc 함수는 이전의 MyRegisterClass 함수에서 보면

이런식으로 함수 포인터를 전달함.
연결된 WndProc 함수는 호출되면
switch 문을 통해 들어온 메시지에 따라 구분된 동작을 함.

예시로 WM_PAINT 요청에 의해 그리기 명령을 수행할 수 있음.
HDC 등이 뭔지는 추후에 살펴본다.
'Win32 api' 카테고리의 다른 글
| Win32 api 강의 6화. (0) | 2025.09.11 |
|---|---|
| Win32 api 강의 5화. (0) | 2025.09.11 |
| Win32 api 강의 4화. (0) | 2025.09.10 |
| Win32 api 강의 3화. (0) | 2025.09.10 |
| Win32 api 강의 1화. (0) | 2025.09.09 |