首先当你在Form1_paint()函数中,使用了双缓冲技术,(此处不再详细介绍双缓冲技术),双缓冲技术是为了提高绘图效率的。问题出现了,当通过鼠标左键绘图时,屏幕一直闪烁! 通过搜索后发现,只需在构造函数中,加上
SetStyle(ControlStyles.UserPaint,
true);
SetStyle(ControlStyles.AllPaintingInWmPaint,
true);
SetStyle(ControlStyles.DoubleBuffer,
true);
闪烁问题就解决了。 主要是第二个:禁止擦除背景,这个和MFC中的类似,把那个函数OnEraseBkgnd(CDC* pDC)直接返回TRUE,功能是一样的,解决闪烁问题。 总结:在使用大频率的刷新时,两种方法都要考虑:一是使用双缓冲技术,二是把禁止擦除背景。缺一不可!
转载请注明原文地址: https://ju.6miu.com/read-1309870.html