ㅇ 메시지 처리 함수 (WinProc)
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
- 메시지가 발생할 때 프로그램의 반응을 처리하는 일을 한다.
- WndProc 는 윈도우 프로시저(WIndow Procedure)라는 뜻
- WinMain내의 메시지 루프는 메시지를 메시지 처리함수로 보내주기만 할뿐 , WinMain에 의해 호출되는 것이 아니라 윈도우즈에 의해 호출됨
- 운영체제에 의해 호출되는 응용 프로그램 내의 함수를 콜백(CallBack) 함수라고 함
- 인수 4개는 MSG 구조체의 멤버 4개와 동일
- HWND: 메시지를 받는 핸들
- UINT : 메시지의 종류
- WPARAM,LPARAM : 메시지에 따라 부가적인 정보
- WndProc의 구조
switch(iMessage)
{
case Msg1:
처리1;
return 0;
case Msg2:
처리2;
return 0;
case Msg3:
처리3;
return 0;
default:
return DefWindowProc(...);
}
- DefWindowProc 함수는 WndProc에 처리하지 않은 나머지 메시지에 관한 처리
ex) 윈도우 크기 변경, 시스템 메뉴 더블클릭(프로그램 종료)
- 사용예)
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
switch(iMessage) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
- WndProc 메시지를 처리 했을 경우 반드시 0을 리턴해주어야 한다.
- DefWindowProc 함수가 메시지를 처리 했을 경우 이 함수가 리턴한 값을 WndProc함수가 다시 리턴해주어야 한다.
ps : 자세한 내용은 www.WinAPI.co.kr 참고
'[ C/ C++ 프로그래밍 ] > [ WinAPI ]' 카테고리의 다른 글
파일 불러 올때 상대 경로를 설정 방법 (1) | 2010.06.30 |
---|---|
[Windows Api 정복 정리 ] DC(Device ConText) (0) | 2010.06.01 |
[Windows Api 정복 정리 ] 메시지 루프 (0) | 2010.05.31 |
[Windows Api 정복 정리 ] WinMain & 윈도우 클래스 (1) | 2010.05.31 |
[Windows Api 정복 정리 ] 기초 (0) | 2010.05.31 |