- - PR -
VC++.NETでのオーバーライド
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-04 21:12
お世話になります。
VC++.NET(Windowsコントロールライブラリ)で開発を行っています。 VC++.NETでのオーバーライドはどのように行えば良いのでしょうか? C#.NETではクラスビューでオーバーライドしたいメソッド上で右クリック をすると「追加」の項目が表示されますが、VC++.NETでは表示されません。 やりたい事はButtonコントロールをカスタムし、指定したイメージ 画像以外は描画しない処理を行いたいです(フォーカス時のフォーカス 枠を表示したくない)。 C#.NETでは下記のソースで解決したのですが、VC++.NETでは どのようにすればよいのかが分かりません。 protected override void OnPaint(PaintEventArgs pevent) { // TODO: ButtonEX.OnPaint 実装を追加します。 if(this.Image != null) { pevent.Graphics.DrawImage(this.Image,0,0,this.Width,this.Height); } //base.OnPaint (pevent); } 以上よろしくお願いします。 |
|
投稿日時: 2005-03-04 21:45
同じように“書けば”いいだけ。
_________________ |
|
投稿日時: 2005-03-05 11:18
Jittaさんご返答ありがとうございます。
下記のように書いて無事解決しました。 protected: void OnPaint(PaintEventArgs *pevent) { if(! this->Image){ pevent->Graphics->DrawImage(this->Image,0,0,this->Width,this>Height); } } 重ねての質問で申し訳ないのですが、同じ事をWindowsアプリケーション (フォーム上にボタンが一つ)で行ったのですが、ボタン上にフォーカス枠 が表示されてしまいます。ボタンの描画処理もオーバーライドしたOnPaint に処理は行かないのでしょうか? protected: void OnPaint(PaintEventArgs *pevent) { if(! button1->Image){ pevent->Graphics->DrawImage(button1->Image,0,0, button1->Width,button1>Height); } } 以上よろしくお願いします。 |
1