WinMain 함수
WndClass정의 -> WndClass 등록 > Window생성 > Window 출력 > 메세지 루프
- WndClass정의 : 윈도우의 기반이 되는 클래스, 윈도우 속성 정의
- WndClass 등록 : 윈도우 클래스를 커널에 등록 (메모리에 로드하기 위해서)
- Window생성 : 메모리에 윈도우 생성
- Window 출력 : 사용자에게 시각화 (화면 출력)
- 메세지 루프 : 메세지 In을 Loop를 돌면서 대기 -> 메세지가 발생하면 해당 메세지를 메세지 처리 전용함수 (WinProc)로 전달
What WndProc?
메세지(이벤트)가 발생하면 이 메세지를 전달받아 처리하는 역할
-
WinMain에서 호출하는 것이 아닌, 윈도우에 의해서 호출된다.
-
WinMain내에 존재하는 메세지 루프는 메세지 처리 전용 함수로 전달하는 역할만 한다.
-
윈도우 프로시저는 메세지가 들어오면 호출되며, 메세지에 맞게 내용을 처리한다. 콜백 함수(CallBack Function)이다
📞
What 콜백 함수(CallBack Function) ?
사용자가 호출하는 것이 아닌, 운영체제에 의해 호출되는 함수
WndProc 함수의 인수
- HWND hWnd : 메세지를 받을 윈도우의 핸들
- UINT iMessage : 어떤 메세지를 받았는지
- WPARAM wParam : 메세지에 따른 부가 정보
- LPARAM lParam : 메세지에 따른 부가 정보
*HWND 자료형
- 운영체제 내부에 있는 어떤 리소스의 주소를 정수로 치환한 값 (오브젝트 주소)
[출처]https://chanos.tistory.com/entry/Window-API-Win32-API%EC%97%90%EC%84%9C-%EC%A0%9C%EA%B3%B5%ED%95%98%EB%8A%94-%EC%9E%90%EB%A3%8C%ED%98%95%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%83%80%EC%9E%85-%EB%AA%A8%EC%9D%8C%EA%B3%BC-%ED%95%B8%EB%93%A4HANDLE
Handler Message 등록
ex) VCL_MESSAGE_HANDLER(PROC_MSG, TMessage, OnSequenceMsg);
- PROC_MSG :Window Message
- TMessage : 메세지 정보를 담고 있는 구조체
3.핸들러 함수 (콜백 함수) -> PROC_MSG 메세지를 받았을 때 실행되는 함수
등록된 메세지를 PostMessage OR SendMessage를 통해 프로시저에 메세지 전송
PostMessage(비동기) VS SendMessage(동기)
1. PostMessage

2.SendMessage