https://blog.naver.com/tipsware/221211757379
1. Windows 응용 프로그램들은 시스템 자원을 사용하고 싶은 경우, API 함수를 호출하여 Windows 운영체제에게
서비스를 요청하고 해당 서비스에 대한 운영체제의 결과를 기다리는 방식으로 작업이 진행됨.
2. 특정 Window에 마우스를 클릭하거나 키보드를 입력했다면 Windows 운영체제가 해당 Window를 소유한 응용
프로그램에게 그 사실을 알려야지만 해당 응용 프로그램이 사용자 입력에 대한 상황을 처리할 수 있음.
=> 이를 위해 Windows 운영체제와 실제 반응할 응용 프로그램간의 동기화 기술이 필요.
=> "Window Message"의 탄생
3. Message ID
운영체제가 Window에 발생한 각종 상태 변화를 알려주기 위해 사용하기 때문에 각 상태를 의미하는 상수값이 필요
=> WM_XXXX 형식의 값
=> 사용자 정의 Message ID를 사용하려면 (WM_USER + 1) 부터 사용해야 함. 안그러면 기존에 Windows 운영체제에서
쓰고 있던 Message ID와 충돌이 발생
=> wParam과 lParam에 자세한 값을 넣어서 구체적인 상황을 알려줌
4. Message Queue
응용 프로그램에 전달된 Window 메시지는 응용 프로그램의 Message Queue에 순서대로 저장됨.
응용 프로그램은 Message Queue에 저장된 메시지를 GetMessage() 함수를 사용해서 하나씩 가져와서 순서대로 처리.
5. 운영체제말고 일반 응용 프로그램도 Window Message를 보낼 수 있다!
=> SendMessage() / PostMessage()
'Study Memos > Windows Programming' 카테고리의 다른 글
BITMAP 구조체 (Section 15) (0) | 2020.09.01 |
---|---|
Bitmap (Section 13) (0) | 2020.08.27 |
Windows Class (Section 7) (0) | 2020.08.24 |
Windows Event (Section 6) (0) | 2020.08.24 |
HInstance (Section 5) (0) | 2020.08.24 |