2012-05-31 46 views
2

我在使用繪畫事件的圖片框中繪製了矩形。當我點擊清除按鈕。我想要圖形消失。每當鼠標移動時我都會調用繪畫事件。我該怎麼辦?如何清除vC++ 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); 
} 
} 

回答

3

如果pb是你PictureBox然後明確自己的形象來清除所有的圖形。此外,您還可以使用一個變量(buttonpressed),以檢查其是否爲真(按鈕清除按下)或假(否則)

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

在你的paint方法包括所有的圖形,如果不buttonpressed:

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

當你想要的圖形,當你按下一個按鈕,改變buttonpressed值出現回:

buttonpressed=0; 
    pb->Refresh(); 
+0

當我清除圖像時,圖形仍然是:( –

+0

)當你想要圖形出現時,你可以從1更新'buttonpressed = 0'。在更新buttonpressed的值後刷新了'picturebox' – Subs

+0

刷新並沒有幫助:( –

0

繪製圖形透明色的。多數民衆贊成我終於做到了。不是gud設計,但是可以工作:)

+0

@CodingMash:爲什麼這不是問題的答案?恕我直言,OP通過分享他的解決方案,使用答案(這是他們的目的)做了正確的事情。 – Mac

相關問題