在内存中画实心圆,然后显示出来(c++)

CClientDCdc(this);CBrushbrush,*oldbrush;brush.CreateSolidBrush(RGB(0,0,225));oldbrush... CClientDC dc(this);CBrush brush,*oldbrush;brush.CreateSolidBrush(RGB(0,0,225));oldbrush=dc.SeleteObject(&brush);dc.Ellipse(100,100,200,200);dc.SeleteObject(oldbrush);我想在程序的主面板中用画刷(CBrush)画一个实心圆,且要让他移动,但问题是它会闪烁,而且很闪烁得很厉害,听说先把它画在内存上,然后显示出来可以防止闪烁,代码该怎么写。 展开
 我来答
匿名用户
2013-08-06
展开全部
你先想一下这个问题:屏幕上画一个圆,位置是100,100;再画在101,100处画一个圆,我们本来希望圆应该是移动的,但是却留下了“阴影”即原来画的圆没有擦除。好,那我们在两句间加一个擦除语句,可是又占用时间擦除屏幕,导致肉眼看起来闪烁。内存画圆原理:1清空内存2将圆画在内存上(不画在屏幕上)3显示内存4跳到1步。如此重复。至于GDI函数是次要的,比如画圆函数一查就有,关键是方法。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式