ビューに背景色をつけるには – プログラミング – Home

ビューに背景色をつけるには
 
通知
すべてクリア

[解決済] ビューに背景色をつけるには


たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

ビューに背景色をつけようと思い以下のように
コーディングしたのですが、背景色は白のままです。
どのようにコーディングしたらよろしいでしょうか?

void CXXXView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: この位置に描画用のコードを追加してください
pDC->SelectStockObject(LTGRAY_BRUSH);
}

環境はWin98SE VC++6.0SP5 MFCです


引用未解決
トピックタグ
PAI
 PAI
(@PAI)
ゲスト
結合: 24年前
投稿: 359
 

OnEraseBkgnd をオーバーライドして、そこで自分で塗ってください。


返信引用
たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

PAIさんの方法でViewの背景を設定できたのですが、
以下の2点ほど疑問があります。

・OnEraseBkgndでCBrushをデフォルトコンストラクタで作成後
 CreateStockObject(LTGRAY_BRUSH)
 とブラシの設定を行っています。
 MSDNにはデフォルトコンストラクタの作成後は
 CreateSolidBrush,CreateHatchBrush,CreateBrushIndirect,
 CreatePatternBrush,CreateDIBPatternBrush
 で初期化すると書いてありますがCreateStockObjectを使うのは
 まずいでしょうか?
・背景の描画後CDC::TextOutで文字列を表示すると、
 文字列を囲む部分だけが白くなってしまいます。
 これを回避する手段はないでしょうか?

以上、よろしくお願いします


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

> CreateStockObjectを使うのはまずいでしょうか?

使用方法にもよりますが、問題ないと思います。

> 背景の描画後CDC::TextOutで文字列を表示すると、
>  文字列を囲む部分だけが白くなってしまいます。
>  これを回避する手段はないでしょうか?

CDC::SetBkMode()


返信引用
たろう
 たろう
(@たろう)
ゲスト
結合: 25年前
投稿: 51
Topic starter  

OnDrawで
pDC->SetBkMode(TRANSPARENT);
としてやることで
テキストの周りの白い枠が消えました。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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