MFC制作游戏地图编辑器,请教怎么把3D视图与MFC整合

srhouyu 2014-06-11 10:26:51
在用MFC做一个游戏编辑器,因此,需要视图持续地以最高速度渲染。在WinSDK中,我知道可以这样做:
    MSG msg;
BOOL fMessage;
PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);

while(msg.message != WM_QUIT)
{
fMessage = PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);
if(fMessage)
{
//处理消息
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
Render();
}
}


现在,在MFC中,这个 Render();应该在哪里插入,才能被全速地持续调用?我要求使用PeekMessage而不是GetMessage。
我尝试重载WinAppEx::Run(),但是发现它只被调用了一次,不是持续被调用的。
...全文
282 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
srhouyu 2014-06-19
  • 打赏
  • 举报
回复
我新弄了一个线程,跟SDK编程一样,写在死循环里面了。
dchneric 2014-06-17
  • 打赏
  • 举报
回复
引用 5 楼 srhouyu 的回复:
[quote=引用 4 楼 dchneric 的回复:] [quote=引用 2 楼 srhouyu 的回复:] [quote=引用 1 楼 dchneric 的回复:] OnPaint()....OnDraw()... something like that
这不是有无效区域的时候才调用吗?我需要的是无条件的持续调用。[/quote] 那就楼上那种吧,可以响应一个Timer,设成60fps 不要用最高速度,哪个不靠谱[/quote] 为啥不靠谱。最高帧速也是个指标啊,老固定在60fps我怎么知道最高帧速有多少。[/quote] 统计一帧的时间然后取倒数就行了,不用真的去渲染....显示器只有60fps(现在也有75fps的),所以你也看不出来...
hhhh63 2014-06-15
  • 打赏
  • 举报
回复
用DirectX3D,可以设定动画帧频,专业游戏制作。 用其它的游戏引擎更好。
srhouyu 2014-06-15
  • 打赏
  • 举报
回复
引用 4 楼 dchneric 的回复:
[quote=引用 2 楼 srhouyu 的回复:] [quote=引用 1 楼 dchneric 的回复:] OnPaint()....OnDraw()... something like that
这不是有无效区域的时候才调用吗?我需要的是无条件的持续调用。[/quote] 那就楼上那种吧,可以响应一个Timer,设成60fps 不要用最高速度,哪个不靠谱[/quote] 为啥不靠谱。最高帧速也是个指标啊,老固定在60fps我怎么知道最高帧速有多少。
dchneric 2014-06-12
  • 打赏
  • 举报
回复
引用 2 楼 srhouyu 的回复:
[quote=引用 1 楼 dchneric 的回复:] OnPaint()....OnDraw()... something like that
这不是有无效区域的时候才调用吗?我需要的是无条件的持续调用。[/quote] 那就楼上那种吧,可以响应一个Timer,设成60fps 不要用最高速度,哪个不靠谱
srhouyu 2014-06-12
  • 打赏
  • 举报
回复
引用 1 楼 dchneric 的回复:
OnPaint()....OnDraw()... something like that
这不是有无效区域的时候才调用吗?我需要的是无条件的持续调用。
lx624909677 2014-06-12
  • 打赏
  • 举报
回复
无条件持续调用就响应OnTimer被
dchneric 2014-06-11
  • 打赏
  • 举报
回复
OnPaint()....OnDraw()... something like that

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧