初めて投稿します。
MFCで開発してます。
+-------+-------+
| (1) | (2) |
+-------+-------+
| (3) | (4) |
+---------------+
↑のような画面(CFormView)で、(1)~(4)の部分にはビットマップを表示しています。
ビューが4つあるのではなく、1つのビューのクライアント領域に表示しています。
各ビットマップの下にはテキストを出力するエリアがあります。
(1)~(4)の部分をマウスでクリックすると、その部分のテキスト出力エリアの背景色を緑
に変えます。
(1)~(4)の部分をマウスでダブルクリックすると、その部分を画面全体に拡大して表示し
ます。
このとき、テキスト出力エリアの背景色も引き継ぎたいのですが、OnDraw()や
OnEraseBkgnd()で塗りなおしても色が変わりません(デフォルトの色のグレーになる)。
どうすれば背景色を引き継げるでしょうか?
よろしくお願いします。
れすつきませんねぇ。
「拡大表示」しているときのビットマップを描画している
関数の前後に当該のテキストの描画があると思うのですが、
そのあたりを調べてみたらどうでしょう。
また、表示テキストの背景は
1.SetBkMode( TRANSPARENT)の場合はFillRect()等で描画
2.SetBkMode( OPAQUE)の場合はSetBkColor()で指定
の2ケースが考えられます。
塗りつぶしたいものが具体的になんなのか不明ですが
ダイアログ部分の背景だと仮定すると画面(CFormView)の
・OnCtlColor でブラシを返す
・OnEraseBkgnd で塗りつぶして OnCtlColor で NULL_BRUSH を返す
のいずれかで色を変えられます。
#OnDraw()でも変わらないのならダイアログの背景ではないのでしょうが・・・
#仲澤@失業者さんの言うように SetBkMode の設定の問題かもしれない