ビューに背景色をつけようと思い以下のように
コーディングしたのですが、背景色は白のままです。
どのようにコーディングしたらよろしいでしょうか?
void CXXXView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: この位置に描画用のコードを追加してください
pDC->SelectStockObject(LTGRAY_BRUSH);
}
環境はWin98SE VC++6.0SP5 MFCです
OnEraseBkgnd をオーバーライドして、そこで自分で塗ってください。
PAIさんの方法でViewの背景を設定できたのですが、
以下の2点ほど疑問があります。
・OnEraseBkgndでCBrushをデフォルトコンストラクタで作成後
CreateStockObject(LTGRAY_BRUSH)
とブラシの設定を行っています。
MSDNにはデフォルトコンストラクタの作成後は
CreateSolidBrush,CreateHatchBrush,CreateBrushIndirect,
CreatePatternBrush,CreateDIBPatternBrush
で初期化すると書いてありますがCreateStockObjectを使うのは
まずいでしょうか?
・背景の描画後CDC::TextOutで文字列を表示すると、
文字列を囲む部分だけが白くなってしまいます。
これを回避する手段はないでしょうか?
以上、よろしくお願いします
> CreateStockObjectを使うのはまずいでしょうか?
使用方法にもよりますが、問題ないと思います。
> 背景の描画後CDC::TextOutで文字列を表示すると、
> 文字列を囲む部分だけが白くなってしまいます。
> これを回避する手段はないでしょうか?
CDC::SetBkMode()
OnDrawで
pDC->SetBkMode(TRANSPARENT);
としてやることで
テキストの周りの白い枠が消えました。
ありがとうございました。
