CWnd::OnEraseBkgnd
更新 : 2007 年 11 月
CWnd の背景を消去する必要がある場合 (たとえば、サイズを変更する場合) に、フレームワークによってこのメンバ関数が呼び出されます。
afx_msg BOOL OnEraseBkgnd(
CDC* pDC
);
パラメータ
- pDC
デバイス コンテキスト オブジェクトを指定します。
戻り値
背景を消去する場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
塗りつぶしに無効な領域を用意するために呼び出されます。
既定の実装では、ウィンドウ クラス構造体の hbrBackground メンバで指定したウィンドウ クラス背景ブラシを使って背景を消去します。
hbrBackground メンバが NULL の場合は、OnEraseBkgnd 関数のオーバーライドによって背景の色が消されます。UnrealizeObject Windows 関数を呼び出してからブラシを選択すると、オーバーライドした OnEraseBkgnd 関数は、ブラシの原点の CWnd の座標に揃える必要があります。
メッセージが処理され、背景が消去されると、オーバーライドされた OnEraseBkgnd は WM_ERASEBKGND への応答として 0 以外の値を返します。つまり、これ以上消去要求が不要であることを示します。0 が返された場合は、まだウィンドウに消去する必要がある場所が残っていることを示します。通常、これは、PAINTSTRUCT 構造体の fErase メンバが TRUE になることを意味します。
Windows は、背景が MM_TEXT マップ モードを使って算出されると仮定します。デバイス コンテキストがそのほかのマップ モードを使っている場合は、クライアント領域の表示されている部分以外の領域が消去されることもあります。
メモ : |
---|
このメンバ関数は、アプリケーションが Windows メッセージを処理できるようにするためにフレームワークによって呼び出されます。この関数に渡されるパラメータの値は、フレームワークがメッセージ受信時に受け取ったパラメータの値に基づいています。この関数の基本クラスの実装を呼び出した場合は、関数に渡したパラメータではなく、メッセージと共に渡されたパラメータ自体が使用されます。 |
必要条件
ヘッダー : afxwin.h