-
[API]WndProcC/C++ 2015. 3. 12. 23:10
WndProc은 전에도 설명했듯이 메세지를 처리하는 함수이다.
WndProc의 기본구조는 아래와같다.
switch(iMessage) {
case MSG:
처리
return 0;
case MSG2:
처리
return 0;
...
default:
return DefWindowProc(..);
}
윈도우즈 프로시저함수로 메세지가 전달되면 case문에서 해당 메세지를 찾아 그 부분에서 처리한다.
예를들어 WM_LBUTTONDOWN이 전달되면 case WM_LBUTTONDOWN에서 처리하게된다.
DefWindowProc함수는 WndProc에서 처리하지 않은 나머지 메시지들을 처리한다.
시스템메뉴같은 switch-case문에서 처리하지못하는것은 해당함수에서 처리한다.
정리하자면 아래와같다.
1.GetMessage에서 메세지를 꺼낸다
2.WM_QUIT,즉 종료메세지가 전달되면 곧바로 프로그램은 종료한다.
3.TranslateMessage함수에서 키보드를 해석한다.
4.DispatchMessage함수에서 메시지를 WndProc으로 보낸다.
5.WndProc에서 최종으로 메세지를 읽어들여 그에 맞는 메세지를 처리한다.
6.읽어들일수없는 메세지라면 DefWindowProc함수에서 따로 처리한다
'C/C++' 카테고리의 다른 글
[API]WM_PAINT (0) 2015.03.12 [API]TextOut (0) 2015.03.12 [API]Message Loop (0) 2015.03.12 API 기초(2) (0) 2015.03.12 API 기초 (0) 2015.03.12