2013-03-31 162 views
0

我試圖使用MouseMove重繪在它的工作面板內的一個新的位置相同的矩形,但我有很多從無效閃爍...我試過刷新(),但它同...請幫我繪圖形狀和閃爍

這是我與MouseMove事件面板內繪製代碼:

if (panel->BackgroundImage == nullptr) 
{ 
    panel->BackgroundImage = gcnew System::Drawing::Bitmap(panel->Width, panel->Height); 
} 

Graphics^ buffGraphics = Graphics::FromImage(panel->BackgroundImage); 

buffGraphics->Clear(panel->BackColor); 
buffGraphics->DrawRectangle(System::Drawing::Pens::Blue,10, 10, 50, 50); 

panel->Invalidate(); 
panel->Update(); 
+0

爲什麼不直接在它的'Paint'事件處理程序內部繪製面板? –

+0

Becouse我是新來的,不知道如何,但也許你可以告訴我,請:) :) –

回答

-1

looks likeGraphics->CopyFromScreen()可能有助於

+0

你可以請示範我如何植入它的權利?請 –

0

添加onForm load方法表單並啓用雙緩衝爲:

DoubleBuffered = true; 

,或者如果你想用另一種方式做到這一點是要走的窗體設計視圖 右鍵單擊窗體上,然後單擊屬性然後搜索DoubleBuffered 屬性並將其設置爲true

此外,任何繪圖應該在Paint事件