如何在vc ++ paint中清除以前绘制的所有图形?

时间:2012-05-31 07:34:50

标签: visual-c++ graphics picturebox

我使用绘画事件在图片框中绘制了矩形。当我点击清除按钮。我希望图形消失。每次鼠标移动时我都会调用paint事件。我该怎么办?

油漆事件中的代码:

Graphics^ g = e->Graphics;
float PenWidth = 2;
if(msdwnflag!=-1 && count%2==1)
{
    if(selecflag==0)
    {
    g->DrawRectangle( gcnew Pen( Color::Blue,PenWidth ), RcDraw);
}
else
{
    RcDraw.Width = finalMousePos.X- RcDraw.X;
    RcDraw.Height = finalMousePos.Y- RcDraw.Y;
    g->DrawRectangle( gcnew Pen( Color::Red,PenWidth ), RcDraw);
}
}

2 个答案:

答案 0 :(得分:3)

如果pb是您的PictureBox,请清除其图片以清除所有图片。此外,您可以使用变量(buttonpressed)来检查它是否为真(按下按钮清除)或错误(否则)

     buttonpressed=1;
     pb->Image = nullptr;
     pb->Refresh();

在你的paint方法中包括所有图形,如果不按下按钮:

     if (buttonpressed != 1){
         // all your graphics code
     }

如果希望在按下按钮时显示图形,请更改buttonpressed值:

    buttonpressed=0;
    pb->Refresh();

答案 1 :(得分:0)

绘制透明色的图形。这就是我最终做的。不是一个好的设计,但有效:)