2012-02-24 7 views
1

MFC SDIアプリケーションがあり、別のダイアログからドキュメント領域にアクセスしたいので、何かを描画できます。MFC - DocumentView OnDraw(CDC * pDC)メソッドにグローバルにアクセスする

無効CProjView :: OnDraw(CDC * pDCのを)

またはより良いまだ、私はダイアログから直接ドキュメントビュー上に描画したいと思います:ここで私がアクセスできるようにするものです。どうやってやるの ?

答えて

3

ドキュメント内に何かを描画する場合は、ドキュメント内にあるはずのものよりも優先します。 CDocumentクラスへのポインタを取得し、CDocument::UpdateAllViewsを呼び出します。それはCView::OnUpdateに電話します。そこにフラグを設定し、Invalidate()に電話します。 OnDraw()は、新しいオブジェクトで画面を再描画するように指示するフラグを設定するので、画面を再描画します。

クライアント領域のデバイスコンテキストを取得して描画を開始できる他の方法もありますが、ウィンドウを最小化して元に戻すと、新しいペイントが失われるという問題があります。 OnDraw()関数の外で行うことは、実際には失われます。したがって、OnDraw()関数ですべての図面を行う必要があり、上記の方法は、doc/viewアーキテクチャを使用して体系的に行う方法です。

関連する問題