WinAPI: WndProc

1. WndProc
 메시지 처리 함수는 메시지가 발생할 때 프로그램의 반응을 처리하는 일을 하며 WndProc(Window Procedure)이라는 이름으로 존재합니다. 이 함수는 WinMain이 아닌 Windows에 의해 호출됩니다. 이렇게 운영체제에 의해 호출되는 응용 프로그램 내의 함수를 콜백(CallBack) 함수라고 합니다.

WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam);

 인수들은 MSG 구조체의 멤버 4개와 동일합니다. hWnd는 메시지를 받을 윈도우 핸들이며, iMessage는 메시지의 종류를 나타냅니다. wParam과 lParam은 세부 정보를 가지는데 메시지의 종류마다 값이 나타내는 의미가 다릅니다.

 WndProc의 구조는 메시지의 종류에 따라 다중 분기하여 처리할 수 있는 switch문으로 구성되어 있습니다.
switch(iMessage)
{
case Msg1:
    처리1;
    return 0;
case Msg2:
    처리2;
    return 0;
case Msg3:
    처리3;
    return 0;
default:
    return DefWindowProc(...);
}

 제일 끝에 있는 DefWindowProc 함수는 WndProc에서 처리하지 않은 나머지 메시지에 관한 처리를 해 줍니다.

댓글