我使用'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'?或者我是否以错误的方式得到了建议?
答案 0 :(得分:-1)
我不知道我是否帮助你,但通常你会得到这样的绘画能力:
System::Void Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
System::Drawing::Graphics^ g = e->Graphics;
g->DrawRectangle(...);
}