0

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

有时,Hans Passant 先生给了我建议,用面板的绘制事件来替代“CreateGraphics()”。在我看来,“绘画”事件也用于创建,而不仅仅是 4 恢复。

Visual C++ DrawRectangle 填充

... 一般来说,不要使用 CreateGraphics(),无论你画什么都不会存活。例如,最小化和恢复您的窗口。请改用面板的 Paint 事件。– 汉斯·帕桑特 7 月 3 日 12:47

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

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

之后你创建矩形

drawPointer->drawRectangle(...); 

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

4

1 回答 1

-1

我不知道我是否正确,但通常你会获得这样的绘画能力:

System::Void Paint(System::Object^  sender, System::Windows::Forms::PaintEventArgs^  e) {
System::Drawing::Graphics^ g = e->Graphics;
    g->DrawRectangle(...);
}
于 2013-08-16T16:17:10.330 回答