「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」に到達するにはどうすればよいですか? それとも、間違った方法でアドバイスを受けたのでしょうか?