刷新时如何防止面板闪烁?

时间:2013-10-02 13:42:43

标签: c++ clr

  • 我正在使用 C ++ / CLR(在visual studio 2010中使用Windows窗体)处理GUI项目,我们需要使用鼠标进行形状移动,即点击圆形时,它用鼠标移动,直到双击将该圆圈放在那个地方。

  • 为了实现这样的场景,我在鼠标移动事件中添加了条件,当这个条件满足时我得到了x,y需要绘制圆圈(x和y是鼠标位置的那些)然后使panel1刷新。 / p>

但是这导致了panel1中主图形的闪烁(由于刷新次数很多,因此存在逻辑)。

所以有人可以告诉我如何在保持所需功能的同时解决这个问题吗?

  • 我试图在鼠标事件中绘制并且没有刷新,但它会绘制连续的圆圈! 即使我每次都删除前一个圆圈,这也会影响我的主要绘图,直到我双击(删除前一个圆圈下的主要图纸)
  • 我还尝试使用update()或invalidate()而不是刷新,但它没有用。

任何想法?!!

非常感谢

1 个答案:

答案 0 :(得分:0)

恕我直言你应该双重缓冲你的小部件(panel1?)。有很多关于如何做的文章。

根据this article,您需要在绘图事件中执行此操作,而不是在鼠标事件中执行此操作。

HTH,