我绘制了一个立方体,想要它不停地转动,OnTimer 函数如下:(在OnDraw()函数中
已经包含了绘制物体的函数DrawScene()).void CLesson06View::OnTimer(UINT nIDEvent)
{
switch(nIDEvent) {
case 0:
break;
case 1:
xrot += 0.8f;
yrot += 0.8f;
zrot += 0.8f;
Invalidate(FALSE);
break;
}
}即使调用了OnEraseBkgnd()函数,图形闪得仍非常厉害:BOOL CLesson06View::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return TRUE;
}请问有什么方法可以解决?
已经包含了绘制物体的函数DrawScene()).void CLesson06View::OnTimer(UINT nIDEvent)
{
switch(nIDEvent) {
case 0:
break;
case 1:
xrot += 0.8f;
yrot += 0.8f;
zrot += 0.8f;
Invalidate(FALSE);
break;
}
}即使调用了OnEraseBkgnd()函数,图形闪得仍非常厉害:BOOL CLesson06View::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return TRUE;
}请问有什么方法可以解决?
换成
RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW);可以试试============================================================================
提问题时标题要简明扼要地说明问题内容,切忌使用"急","求救"之类不能说明问题的标题
http://alphasun.betajin.com/ 遇到问题可以给我发消息,给我发信息时请附带原帖地址
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
{
CLesson07Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
HWND hWnd = GetSafeHwnd();
HDC hDC = ::GetDC(hWnd);
wglMakeCurrent(hDC,hglrc);
glClearColor(0.0f,0.0f,0.0f,1.0f);
glClear(GL_DEPTH_BUFFER_BIT| GL_COLOR_BUFFER_BIT);
DrawScene();
wglMakeCurrent(NULL,NULL);
SwapBuffers(hDC);
}双缓存技术是不是就是用SwapBuffers()函数?
有没有加上使用双缓存!