애플리케이션 윈도우를 작성하고, Direct3D를 초기화 한 후는 언제라도 신을 렌더링 할 수 있습니다. 통상, Windows 애플리케이션은 각각의 메시지 루프 내에서 시스템 메시지를 모니터하고, 메시지가 큐에 존재하지 않으면 프레임을 렌더링 합니다. 다만, CreateDevice 샘플 프로젝트는 WM_PAINT 메시지가 큐에 들어올 때까지 대기해 애플리케이션에 그 윈도우 전체 또는 일부를 갱신할 필요가 있음을 통지합니다.
// The message loop.
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
루프가 실행될 때마다 DispatchMessage 는 큐 내의 메시지를 처리할 MsgProc를 호출합니다.
WM_PAINT 가 큐에 들어오면 애플리케이션은 윈도우를 갱신할 애플ㄹ리케이션 정의 함수인 Render를 호출합니다. 이어서 클라이언트 영역 전체를 검증하기위해서 Win32함수ValidateRect 가 불립니다.
메시지 처리 함수의 샘플 코드는 다음과 같습니다.
LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
PostQuitMessage( 0 );
return 0;
case WM_PAINT:
Render();
ValidateRect( hWnd, NULL );
return 0;
}
return DefWindowProc( hWnd, msg, wParam, lParam );
}
이것으로 애플리케이션은 시스템 메시지를 처리할 수 있습니다. 다음에는 「 4 – 신의 렌더링과 표시」에서 설명하는 것 처럼 표시를 렌더링 합니다.
© 2009 Microsoft Corporation. All rights reserved.
バージョン: 1734.00







댓글 남기기