CWnd::BeginPaint
塗りつぶしのために 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