绘图形状和闪烁

时间:2013-03-31 05:58:10

标签: .net winforms c++-cli

我正在尝试使用MouseMove在其工作的面板内的新位置重绘相同的矩形,但我有很多来自Invalidate的闪烁...我尝试了Refresh(),但它是一样的..请帮帮我

这是我使用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();

2 个答案:

答案 0 :(得分:0)

将onForm加载方法添加到表单并启用双缓冲:

DoubleBuffered = true;

或者如果您想要另一种方法,那就去表单设计视图 右键单击表单并单击“属性”,然后搜索 DoubleBuffered 属性并将其设置为true

此外,任何绘图都应该在Paint事件

答案 1 :(得分:-1)

looks like Graphics->CopyFromScreen()可能会有所帮助