画像の背景にしたい – プログラミング – Home

通知
すべてクリア

[解決済] 画像の背景にしたい


めがね
 めがね
(@めがね)
ゲスト
結合: 17年前
投稿: 18
Topic starter  

お世話になります。
再度質問させてください。

ダイアログ全体の背景をGDI+を使って画像を
描画しています。
描画は正常に行われているのですが、ダイアログに貼り付けた
スタティックテキストの背景が描画画像にするのはどうしたらよいのでしょうか?

OnCtlColorでTRANSPARENTをしてみましたが、元のダイアログ色(灰色)が背景に
なってしまいます。

ちなみに、背景はOnPaint()内で描画しています。

ご教授願います。

環境
VC6.0 MFC ダイアログベース


引用未解決
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

OnEraseBkGnd で背景を描いてみるとか。…ダメかな?


返信引用
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

ちょっと、試している暇がないので、丸投げですが、
背景をOnEraseBkgnd()で描画するとどうなりますか?


返信引用
bun
 bun
(@bun)
ゲスト
結合: 24年前
投稿: 761
 

aetosさん、失礼
かぶりました。


返信引用
めがね
 めがね
(@めがね)
ゲスト
結合: 17年前
投稿: 18
Topic starter  

ありがとうございます。

OnPaint()ではなくOnEraseBkgnd()で背景を描画するようにしましたが
変わらずテキストの背景は灰色のままでした。

OnCtlColorでTRANSPARENT実行時に
背景として認識されていないのが原因だとは思うんですが...

もう少し調べてみます。

なにかアドバイスがありましたら、お願いします。


返信引用
rin
 rin
(@rin)
ゲスト
結合: 18年前
投稿: 112
 

楽な方法
スタティックテキストに文字を設定するのではなく
ダイアログに対し、SetBkModeで文字背景をけし
直接DrawTextなどで文字を書く

#文字を書く位置にスタティックテキストを使いまわすとリソースエディタで
位置を決められるので楽

ところでOnCtlColorの戻り値のブラシはどうなっていますか?


返信引用
めがね
 めがね
(@めがね)
ゲスト
結合: 17年前
投稿: 18
Topic starter  

rinさん、ありがとうございます。

>楽な方法
最終手段として使わせて頂きます。

>ところでOnCtlColorの戻り値のブラシはどうなっていますか?
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
{
 HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
 COLORREF colorRef = RGB(0,0,0);

 switch(nCtlColor)
 {
  case CTLCOLOR_STATIC:
   pDC->SetBkMode(TRANSPARENT);
   pDC->SetTextColor(colorRef);
  default:
   break;
 }
}

としていますので、ブラシは特に設定していません。
これが原因でしょうか?


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

OnCtlColor で SetBkMode( TRANSPARENT ) してから、戻り値として GetStockObject(
NULL_BRUSH ) を返すといいかもしれない。


返信引用
めがね
 めがね
(@めがね)
ゲスト
結合: 17年前
投稿: 18
Topic starter  

おお!できました。

なるほど、空のブラシを返すことによって、背景を指定しない
ので、スタティックテキストの下の画像が背景として認識される
ということですね。(合ってますか?)

解決とさせて頂きます。

返事をくださった皆様、ありがとうございました。
また何かあった時には宜しくお願いいたします。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

解決チェックを付けてくださいな。


返信引用
めがね
 めがね
(@めがね)
ゲスト
結合: 17年前
投稿: 18
Topic starter  

すいません、忘れてました!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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