本人刚接触c++,搞了个时钟玩玩,表盘直接找了一张图片,用位图载入并且用了双缓存,表盘不闪了,但是画针时,调用RedrawWindow();老是闪
画针时程序如下:
CPen p2(PS_SOLID,3,RGB(200,100,100));
pDC->SelectObject(p2);
pDC->MoveTo(org_x,org_y); //画分针
pDC->LineTo(m_x,m_y);
用双缓冲等来画图防止闪烁
你使用了双缓冲,画图应该在缓冲区画,不要直接画到视图中。
对此呢微软提供了一枚技术,那就是双缓冲了, 双缓冲的本质是内存贴图,就是说之前的客户区重绘的时候,你的图并没有画完,
并且由于人眼的视觉残留现象,所以造成闪烁,用了双缓冲之后,就变成了每次在客户区重绘的时候直接贴图就行...