http://blog.csdn.net/loveclover

第三步:处理系统消息

当你创建好应用程序窗口并且初始化过Direct3D对象之后,你就完了渲染场景的准备工作。在大多数情况下,Windows应用程序在消息循环中检测系统的各种消息,并且在队列中没有消息需要处理的时候,则会对帧(frames)进行渲染。抛开这些,CreateDevice示例工程等待消息队列中的WM_PAINT消息,一旦消息到来则通知应用程序需要对窗口的所以部分进行重绘操作。

// The message loop.
MSG msg; 
while( GetMessage( &msg, NULL, 00 ) )
{
    TranslateMessage( 
&msg );
    DispatchMessage( 
&msg );
}

每循环一次,DispatchMessage就会调用一次负责处理队列中各种消息的MsgProc(窗口过程函数)。当WM_PAINT被处理时,应用程序调用Render这个自定义函数,用来重绘窗口。之后ValidateRect这个Win32函数被调用,使得这个客户区域变得有效。

消息处理函数的示例代码如下:

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 );
}

既然应用程序已经处理了系统消息,那么下一步就是渲染显示。详见第四步:渲染并显示一个场景。

posted on 2008-02-28 21:38 Sure 阅读(214) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿(5)

随笔分类

随笔档案

相册

搜索

最新评论

阅读排行榜

评论排行榜