Share via


CView::OnUpdate

ビューのドキュメントが修正された後、フレームワークが呼び出します。この関数は、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

参照

参照

CView クラス

階層図

CDocument::UpdateAllViews

CView::OnInitialUpdate

CWnd::Invalidate

CWnd::InvalidateRect

その他の技術情報

CView のメンバー