GDI+で画像を削除 – プログラミング – Home

通知
すべてクリア

[解決済] GDI+で画像を削除


ラッキー
 ラッキー
(@ラッキー)
ゲスト
結合: 17年前
投稿: 8
Topic starter  

・通常時
・押下時
・ボタン上にマウスポインタがある時
上記3つ状態変化により3種類の画像をボタン上に表示させています。
(表示はDrawItem内でGDI+を使って描画させています。)

が、通常時の画像は透過画像のため、
(ほかの2つも透過画像だが、背景がある)
・ボタン上にマウスポインタがある時⇒通常時
の変化の際に、マウスポインタ画像の上に通常画像が重なって表示されて
しまいます。

なので、表示を入れ替える際は1度消してから描画させれば
よいかなと考えています。

GDI+で描画した画像を削除する関数があればどなたか教えてください。

環境MFC VC2003


引用未解決
トピックタグ
あ
 あ
(@あ)
ゲスト
結合: 23年前
投稿: 47
 

背景の描画で消去を実現するんでしょ


返信引用
COF
 COF
(@COF)
ゲスト
結合: 15年前
投稿: 53
 

あさん、返信有難うございます。

>背景の描画で消去を実現するんでしょ
すいません、どういう意味でしょうか?
ボタンとは別に背景を描画しろということですか?


返信引用
ラッキー
 ラッキー
(@ラッキー)
ゲスト
結合: 17年前
投稿: 8
Topic starter  

すいません、名前間違えました!


返信引用
ラッキー
 ラッキー
(@ラッキー)
ゲスト
結合: 17年前
投稿: 8
Topic starter  

できました。
お騒がせしました。
InvalidateRectで背景を消すだけでした。


返信引用
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 18年前
投稿: 287
 

あなたがどのようなボタンを描きたいのか
DrawItemで何しているのか
そしてどのような問題が起きているのか
正確・詳細を私は知らないので判らない。

だから、私の発言は何か勘違いしているかもしれない。

ボタンのような立体的な枠を描いてから
その中に画像を表示するものもあるだろうし、
画像がそのままボタン全体になっているものもあるだろう。

例えば
ダイアログに画像を表示していて
この画像を削除するということは、
(このダイアログは灰色で塗られているものとする)
画像が表示されているところを灰色で塗ることになる。

背景もボタンの一部だと俺は思っている。
ここで私のいう背景とは
画像の背後にある、つまりもし画像が無かったら表示されているべき色や絵のこと。

親がダイアログでクリップしないウィンドウスタイルで
ダイアログの背景色で塗ってほしいなら
変化の際に(DrawItemなどから呼ぶと無限ループになりそうだから駄目)
InvalidateRect
UpdateWindow
で親ダイアログに背景色で塗りつぶしてもらうとか。
ただしこれでうまくいくかは知りません。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました