我正在尝试使用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();
答案 0 :(得分:0)
将onForm加载方法添加到表单并启用双缓冲:
DoubleBuffered = true;
或者如果您想要另一种方法,那就去表单设计视图 右键单击表单并单击“属性”,然后搜索 DoubleBuffered 属性并将其设置为true
此外,任何绘图都应该在Paint事件
上答案 1 :(得分:-1)
looks like Graphics->CopyFromScreen()
可能会有所帮助