Dot Net Vc ++撤消drawline

时间:2011-03-24 07:36:38

标签: winforms visual-c++ graphics

在我的应用程序中,我在图片框上绘制一条线。 我希望撤消或删除最后绘制的行。 我们怎么能这样做?

我能够使用字典集合撤消最后绘制的行,然后绘制我需要的行。

我现在的问题是,当我第一次加载应用程序时,我希望绘制线条。我可以使用PictureBox_Paint事件来做到这一点,但是在这种情况下,只有在通过e-> Graphics创建Graphics时才绘制线条,如果我使用pictureBox-> CreateGraphcics()来绘制线条,则不绘制线条。 为什么e->图形和picturebOx-> CraeteGraphics()不同? 我可以捕获哪些其他函数来在表单加载时绘制线条?

1 个答案:

答案 0 :(得分:1)

你是如何画线的? GDI是一种即时模式API,没有撤消。您需要将位图存储在内存之前或磁盘上,以便您可以重新创建它,或者您需要编写自己的绘图API(如果愿意,可以基于GDI),这样您就可以重做所有绘制直到该行的步骤,或者您可以使用反转像素颜色的GDI笔模式。然后,如果再次绘制相同的线,它将有效地撤消更改。然而,这在GDI +中是不可能的(如在winforms中使用的那样)并且它也不允许抗锯齿。