int d3d::EnterMsgLoop( bool (*ptr_display)(float timeDelta) )
{
MSG msg;
::ZeroMemory(&msg, sizeof(MSG)); static float lastTime = (float)timeGetTime(); while(msg.message != WM_QUIT)
{
if(::PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
else
{
float currTime = (float)timeGetTime();
float timeDelta = (currTime - lastTime)*0.001f; ptr_display(timeDelta); lastTime = currTime;
}
}
return msg.wParam;
}
{
MSG msg;
::ZeroMemory(&msg, sizeof(MSG)); static float lastTime = (float)timeGetTime(); while(msg.message != WM_QUIT)
{
if(::PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
else
{
float currTime = (float)timeGetTime();
float timeDelta = (currTime - lastTime)*0.001f; ptr_display(timeDelta); lastTime = currTime;
}
}
return msg.wParam;
}
解决方案 »
- 求判断直线段和圆弧段相交的算法
- 一个文件 我想只读取其中的部分段落 怎么写代码?
- (明早结贴)如何在对话框中加入一个带滚动条功能的绘图区
- 为什么我将vc文件中注释的中文拷贝到记事本里,显示的是乱码啊.高分求教,在线等
- 新手:选中树节点后改变节点的字体和颜色
- 问个用ADO方式,Excel作数据库的问题.
- 请问出现这样的错误应该怎样解决?
- 如何使用SetCurrentColor()
- 怎样保存一个CFont对象到文件里?以后还可以读出来的Serialize()函数怎样写?
- 我已经下载到了,还是多谢了,: sdzym(石头) 进来拿分吧.
- 为什么弹出窗口没有自己的消息
- ntddk.h里出错,郁闷啊~~~
如果有消息来了,就分发消息,没有的话,不停的检测消息,并调用显示函授指针显示,再把间隔时间传进去。
这个方法,一般是游戏中的做法。不过会cpu 100%,如果换成getmessage可节省cpu,但会停在getmessage处,导致图象不连续。