使用paint事件在Visual C ++面板上绘制矩形

时间:2013-08-14 19:30:00

标签: visual-c++ paint

我使用'CreateGraphics()'在面板上绘制了几个矩形。虽然它们在最小化和恢复窗口后总是消失,但我使用了paint-event来恢复它们并且一切正常,总是使用'​​CreateGraphics()。

有时候,Hans Passant先生通过面板的绘画事件向我提出了SUBSTITUTE'CreateGraphics()'的建议。在我看来,'paint'事件也用于创建,而不仅仅是4次恢复。

Visual C++ DrawRectangle filled

  

...一般情况下,不要使用CreateGraphics(),无论你绘制什么都无法生存。例如,最小化和恢复窗口。请改用面板的Paint事件。 - Hans Passant 7月3日12:47

我试过了,但我没有成功。我总是需要'CreateGraphics'来初始化一个指向'Graphics'类的指针并使用'drawRectangle'方法:

System::Drawing::Graphics ^drawPointer = CreateGraphics();

之后使用

创建矩形
drawPointer->drawRectangle(...); 

但是进入面板的'paint-event',如何在不使用'CreateGraphics()'的情况下到达方法'drawRectangle'?或者我是否以错误的方式得到了建议?

1 个答案:

答案 0 :(得分:-1)

我不知道我是否帮助你,但通常你会得到这样的绘画能力:

System::Void Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {
System::Drawing::Graphics^ g = e->Graphics;
    g->DrawRectangle(...);
}