2013-03-31 161 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事件