DefWindowProc

원형 LRESULT DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
MFC 원형 virtual LRESULT CWnd::DefWindowProc( UINT message, WPARAM wParam, LPARAM lParam );
인수

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

▶Msg : 메시지 구조체

▶wParam : 메시지 정보

▶lParam : 메시지 정보. 이상 4개의 인수는 WndProc 함수가 전달받은 인수들과 동일하다.

리턴

메시지를 처리한 결과를 리턴하며 이 결과는 메시지에 따라 다르다. 윈도우 프로시저는 이 함수가 리턴한 값을 다시 리턴해 주어야 한다.

설명

이 함수는 윈도우 프로시저가 처리하지 않은 메시지의 디폴트 처리를 한다. WndProc은 원하는 메시지를 처리하고 자신이 처리하지 않은 메시지는 이 함수에게 전달하여 디폴트 처리를 하도록 해 주어야 한다. 다음은 가장 일반적인 윈도우 프로시저의 모습이다.

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

	switch(iMessage) {
	case WM_CREATE:
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_COMMAND:
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

WndProc은 전달받은 메시지 중 원하는 메시지를 처리하고 나머지는 DefWindowProc에게 넘긴다. DefWindowProc은 처리되지 않은 모든 메시지의 디폴트 처리를 수행한다. 단 WM_DESTROY 메시지에 대해 PostQuitMessage는 호출해 주지 않음을 주의해야 한다.

참고함수 CallWindowProc, DefDlgProc
플렛폼 95이상
참조  

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