CFormViewでの背景の塗りつぶし – プログラミング – Home

CFormViewでの背景の塗りつぶし
 
通知
すべてクリア

CFormViewでの背景の塗りつぶし


THE WORLD
 THE WORLD
(@THE WORLD)
ゲスト
結合: 15年前
投稿: 1
Topic starter  

初めて投稿します。
MFCで開発してます。

+-------+-------+
| (1) | (2) |
+-------+-------+
| (3) | (4) |
+---------------+

↑のような画面(CFormView)で、(1)~(4)の部分にはビットマップを表示しています。
ビューが4つあるのではなく、1つのビューのクライアント領域に表示しています。
各ビットマップの下にはテキストを出力するエリアがあります。
(1)~(4)の部分をマウスでクリックすると、その部分のテキスト出力エリアの背景色を緑
に変えます。
(1)~(4)の部分をマウスでダブルクリックすると、その部分を画面全体に拡大して表示し
ます。
このとき、テキスト出力エリアの背景色も引き継ぎたいのですが、OnDraw()や
OnEraseBkgnd()で塗りなおしても色が変わりません(デフォルトの色のグレーになる)。
どうすれば背景色を引き継げるでしょうか?
よろしくお願いします。


引用解決済
トピックタグ
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

れすつきませんねぇ。
「拡大表示」しているときのビットマップを描画している
関数の前後に当該のテキストの描画があると思うのですが、
そのあたりを調べてみたらどうでしょう。
また、表示テキストの背景は
 1.SetBkMode( TRANSPARENT)の場合はFillRect()等で描画
 2.SetBkMode( OPAQUE)の場合はSetBkColor()で指定
の2ケースが考えられます。


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

塗りつぶしたいものが具体的になんなのか不明ですが
ダイアログ部分の背景だと仮定すると画面(CFormView)の
・OnCtlColor でブラシを返す
・OnEraseBkgnd で塗りつぶして OnCtlColor で NULL_BRUSH を返す
のいずれかで色を変えられます。

#OnDraw()でも変わらないのならダイアログの背景ではないのでしょうが・・・
#仲澤@失業者さんの言うように SetBkMode の設定の問題かもしれない


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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