OnPaint を override する

OnPaint を override してラインを描画します。
コンパイルエラーがなかなか消えず、執念で探し当てました。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. ソースプログラムです。
    ファイル名 説明
    OverPaint.cpp OnPaint を override
  2. ウインドウを描画するメソッドに制御を渡す方法として Paint += で設定する方法と OnPaint を override する方法があります。
    いままで使っていた Paint += で設定する方法です。
    Paint += gcnew PaintEventHandler(this, &FormClass::MyHandler);
  3. 今回は OnPaint を override してラインを描画してみましょう。
    実は OnPaint を override するコードのコンパイルエラーがなかなか消えず、執念で探し当てました。 (^_^;)
    C# では次のように書いたのですが、C++/CLI ではどうしてもエラーが消えません。 (;_;)
    protected override void OnPaint(PaintEventArgs e) { ... }
    執念で探し当てた答えがこれです。心して使って下さい。 (^_^;)
    virtual void OnPaint(PaintEventArgs ^e) override {...}
  4. OnPaint を override する書き方さえ解れば、後は簡単です。
    今回も必要なファイルは、ごく簡単なプログラムファイル一本だけです。
    コンパイルと実行の方法は Set UP を参照して下さい。
  5. OnPaint() メソッドの中身は、以前にラインを描画したコードと同じです。
        virtual void OnPaint(PaintEventArgs ^e) override
        {
            Graphics^ g = e->Graphics;
            g->DrawLine(gcnew Pen(Color::Red),10,50,260,50);
            g->DrawLine(gcnew Pen(Color::Green,10),10,150,260,150);
        }
        

超初心者のプログラム入門(C/C++)