游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1834|回复: 4

关于Direct3D中的消息处理

[复制链接]

12

主题

33

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2007-6-29 15:15:00 | 显示全部楼层 |阅读模式
看了几本参考书,一般的消息循环都是用PeekMessage来获得消息,然后在空闲时间进行渲染。有没有什么方法可以用GetMessage来处理并且不是在空闲时渲染的?还有就是如何在MFC中OnDraw函数下进行渲染? [em24]

1367

主题

1993

帖子

2118

积分

金牌会员

Rank: 6Rank: 6

积分
2118
发表于 2007-6-29 15:16:00 | 显示全部楼层

Re:关于Direct3D中的消息处理

postMessage()

12

主题

33

帖子

37

积分

注册会员

Rank: 2

积分
37
 楼主| 发表于 2007-6-29 15:44:00 | 显示全部楼层

Re:关于Direct3D中的消息处理

PostMessage是用来发送消息的吧?
如果可以,具体该怎么做呢?

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2007-6-29 18:53:00 | 显示全部楼层

Re:关于Direct3D中的消息处理

设定一个bActive变量,表示程序处于活动状态还是挂起状态,在活动状态,用PeekMessage,在挂起时用GetMessage

我是这样处理的,大家评评:
while ( msg.message != WM_QUIT )
{
if ( g_IsActive )
{
if ( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) != NULL )
{
if ( !IsDlgMsg( &msg ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
else
{
Render();
//Sleep( 1 );
}
}
else
{
if ( GetMessage( &msg, NULL, NULL, NULL ) != NULL )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
}

return msg.wParam;

3

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2007-7-1 00:09:00 | 显示全部楼层

Re:关于Direct3D中的消息处理

我用Timer的!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 23:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表