CView::OnUpdate
更新 : 2007 年 11 月
ビューのドキュメントが修正された後、フレームワークが呼び出します。この関数は、CDocument::UpdateAllViews で呼び出され、この修正を反映してビューの表示を更新できるようにします。
virtual void OnUpdate(
CView* pSender,
LPARAM lHint,
CObject* pHint
);
パラメータ
pSender
ドキュメントを変更したビューへのポインタ。すべてのビューを更新する場合は、NULL を指定します。lHint
変更についての情報を持ちます。pHint
変更についての情報が格納されたオブジェクトへのポインタ。
解説
OnInitialUpdate の既定の実装でも呼び出されます。既定の実装ではクライアント領域全体を無効にし、次に WM_PAINT メッセージを受け取ったときに塗りつぶすためにマークします。ドキュメントの修正された部分に割り当てられた領域だけを更新する場合は、この関数をオーバーライドします。このためには、引数 lHint および引数 pHint を使って変更についての情報を渡す必要があります。
lHint を使うためには、特別なヒント値を定義します。一般的に、ヒント値はビット マスクまたは列挙型です。そして、ドキュメントにこれらの値の 1 つを渡させます。pHint を使うためには、CObject からヒント クラスを派生し、ドキュメントがヒント オブジェクトへのポインタを渡すようにします。OnUpdate をオーバーライドしたときは、ヒント オブジェクトのランタイムの型を調べるために CObject::IsKindOf メンバ関数を使用してください。
一般的には、OnUpdate で直接描画を実行しないでください。その代わり、更新を要求された領域を表す四角形をデバイス座標で調べ、この四角形を CWnd::InvalidateRect に渡します。この操作を行うことで、次に WM_PAINT メッセージを受け取ったときに塗りつぶされます。
lHint が 0 でまた pHint が NULL の場合、ドキュメントは汎用更新通知を送ります。ビューがこの汎用更新通知を受け取るか、またはヒントが解釈できないときは、クライアント領域全体を無効にします。
必要条件
ヘッダー : afxwin.h