WndProc

원형

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

MFC 원형

virtual LRESULT CWnd::WindowProc( UINT message, WPARAM wParam, LPARAM lParam );

인수

▶hWnd : 메시지를 받은 윈도우의 핸들

▶iMessage : 전달받은 메시지

▶wParam, lParam : 메시지에 따른 추가 정보이며 메시지마다 의미가 다르다.

리턴

메시지를 처리한 결과를 리턴하며 리턴값의 의미도 메시지마다 다르다.

설명

윈도우로 전달되는 메시지를 처리하는 메시지 처리 함수이며 보통 윈도우 프로시저(Window Procedure)라고 부른다. 사용자 정의 함수이므로 이름은 정해져 있지 않으나 보통 WndProc 또는 WindowProc이라는 이름을 많이 사용한다. 운영체제는 사용자의 조작과 시스템 내부의 변화가 있을 때 메시지 큐에 메시지를 넣으며 WinMain의 메시지 루프는 메시지 큐에서 메시지를 꺼내 윈도우 프로시저로 전달해 준다.

윈도우 프로시저는 자신에게 전달된 메시지의 의미를 분석하여 응용 프로그램 고유의 처리를 한다. 보통 하나의 프로그램이 복수개의 메시지를 처리하므로 윈도우 프로시저는 일반적으로 메시지별로 고유한 처리를 할 수 있는 switch문으로 구성된다.

switch(iMessage)
{
	case Msg1:
		처리1;
		return 0;
	case Msg2:
		처리2;
		return 0;
	case Msg3:
		처리3;
		return 0;
	default:
		return DefWindowProc(...);
}

이 함수가 처리하지 않는 모든 메시지들은 반드시 DefWindowProc으로 보내주어 운영체제가 디폴트 처리를 할 수 있도록 해 주어야 한다.

참고함수

DefWindowProc : 디폴트 메시지 처리 함수

플랫폼

95이상

참조

 


written by http://www.winapi.co.kr