还是闪屏的老问题
新手想做个小游戏,遇到了问题。Timer的频率一条高屏幕就闪得厉害。网上都说用OnEraseBkgnd的方法,道理懂,但不知道具体怎么做才好。
以前做过一个对话框的小游戏,SetTimer(1,15,NULL),屏幕也只有轻微的闪,这回用View,闪的太夸张了,要刷新的东西很少,估计还是OnEraseBkgnd的问题。求大神指导!最好不要讲到线程,还不太会用。
看过这个帖子,意思懂了,但改了几次都不行。
http://topic.csdn.net/u/20091012/14/2b948708-6d7b-498a-9806-a2adbd000c5d.html
部分代码
void CChildView::OnPaint()
{
CPaintDC dc(this);
SetTimer(1,250,NULL);
// 用于绘制的设备上下文
// TODO: 在此处添加消息处理程序代码
// 不要为绘制消息而调用 CWnd::OnPaint()
}
void CChildView::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CClientDC pDC(this);
OnEraseBkgnd(&pDC);
CWnd::OnTimer(nIDEvent);
}
BOOL CChildView::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
StartMenu(pDC); //一个画图的函数,里面东西不多
return TRUE;
//return CWnd::OnEraseBkgnd(pDC);
}