0

「CreateGraphics()」を使用して、パネルにいくつかの長方形を描画しました。ウィンドウを最小化して復元した後は常に消えていましたが、ペイントイベントを使用して復元し、常に「CreateGraphics()」を使用してすべて正常に動作しました。

以前、Hans Passant 氏から、「CreateGraphics()」をパネルのペイント イベントに置換するようにアドバイスがありました。「ペイント」イベントは、復元だけでなく、作成にも使用されるようです。

Visual C++ DrawRectangle 塗りつぶし:

... 一般に、CreateGraphics() は使用しないでください。描画したものはすべて無効になります。たとえば、ウィンドウを最小化して復元します。代わりに、パネルの Paint イベントを使用してください。– Hans Passant 7 月 3 日 12:47

私はそうしようとしましたが、成功しませんでした。クラス「Graphics」へのポインターを初期化し、メソッド「drawRectangle」を使用するには、常に「CreateGraphics」が必要でした。

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

その後、長方形を作成します

drawPointer->drawRectangle(...); 

しかし、パネルの「ペイントイベント」に入ると、「CreateGraphics()」を使用せずにメソッド「drawRectangle」に到達するにはどうすればよいですか? それとも、間違った方法でアドバイスを受けたのでしょうか?

4

1 に答える 1