CWnd::BeginPaint
更新 : 2007 年 11 月
塗りつぶしのために CWnd を準備して塗りつぶし情報を PAINTSTRUCT データ構造体に設定します。
CDC* BeginPaint(
LPPAINTSTRUCT lpPaint
);
パラメータ
- lpPaint
塗りつぶし情報を受け取る PAINTSTRUCT 構造体へのポインタ。
戻り値
CWnd のデバイス コンテキストを識別するポインタを返します。返されるポインタは、一時的なポインタです。EndPaint 関数を呼び出した後では格納できません。
解説
塗りつぶしの構造体は、更新領域すべてを囲む最小の四角形を持つ RECT データ構造体と、バックグラウンドを消去したかどうかを示すフラグを持っています。
更新領域は Invalidate、InvalidateRect、InvalidateRgn メンバ関数により設定されます。さらに、サイズ変更、移動、作成、スクロール、その他クライアント領域に影響する操作の終了後、システムにより設定されます。更新領域が消去されるようにフラグが設定されている場合、BeginPaint 関数は WM_ONERASEBKGND メッセージを送ります。
BeginPaint メンバ関数を呼び出すのは、WM_PAINT メッセージに応答するときだけです。BeginPaint メンバ関数を呼び出したときには、必ず対応する EndPaint メンバ関数を呼び出す必要があります。塗りつぶす領域内にカレットがあるときは、カレットを消去しないように BeginPaint メンバ関数がカレットを自動的に非表示にします。
使用例
// Use BeginPaint and EndPaint when responding to WM_PAINT message
// An alternative method is to use CPaintDC in place of
// BeginPaint and EndPaint
void CMdiView::OnPaint()
{
PAINTSTRUCT ps;
CDC* pDC = BeginPaint(&ps);
pDC->Rectangle(CRect(0, 0, 100, 100));
EndPaint(&ps);
// Do not call CView::OnPaint() for painting messages
}
必要条件
ヘッダー : afxwin.h