首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

[ddraw] 为何只有鼠标移动的时候才会更新所渲染的图像

2013-01-08 
[ddraw] 为什么只有鼠标移动的时候才会更新所渲染的图像?void CRender::Render(){if (!m_bInit)returnint

[ddraw] 为什么只有鼠标移动的时候才会更新所渲染的图像?


void CRender::Render()
{
if (!m_bInit)return;

int posX = 0;
int posY = 0;

POINT point ={ 0, 0 };
::ClientToScreen(m_hWnd, &point);
posX+=point.x, posY+=point.y;

static int curFrame = 0;
static DWORD lastTime = GetTickCount();

if (m_SurfaceList[curFrame].m_pSurface != NULL)
{
RECT srcRect = { 0, 0, m_SurfaceList[curFrame].m_Width, m_SurfaceList[curFrame].m_Height };
RECT dstRect = { posX, posY, posX+m_SurfaceList[curFrame].m_Width, posY+m_SurfaceList[curFrame].m_Height };

m_pDDPrimarySurface->Blt(&dstRect, m_SurfaceList[curFrame].m_pSurface, &srcRect, DDBLTFAST_NOCOLORKEY|DDBLT_WAIT, NULL);
}

DWORD curTime = GetTickCount();
if (curTime-lastTime >= 60)
{
if (++curFrame >= _SURFACE_COUNT)
{
curFrame = 0;
}
}
}


以上代码每隔60毫秒渲染一帧动画,但是运行的时候,鼠标动一下,他就渲染,鼠标不动就不渲染,什么原因?
[解决办法]
Render你又放在哪了?要是放在鼠标move中,他当然只有move时才被调用了呗。
[解决办法]
是不是消息循环用了 TranslateMEssage 没有用PeekMessage?

热点排行