• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OnDrawが呼び出されません)

OnDrawが呼び出されない

このQ&Aのポイント
  • VC++6.0 MFCを使用し、コントロール部と描画部に分けた画面を作成しています。
  • CMyViewクラスはコントロール部であり、CTest1Viewクラスは描画部であり、CTest1Docクラスと関連付けられています。
  • MyViewのボタン入力でTest1Viewの画面を再描画したいのですが、OnDrawが呼び出されません。

質問者が選んだベストアンサー

  • ベストアンサー
  • valvelde
  • ベストアンサー率35% (46/129)
回答No.3

No2は間違いなので無視してください。 CWnd::Invalidate CWnd::UpdateWindow をコールする。 いまいち何がしたいのかよくわかりませんが本来は OnUpdateで画面を更新すれば自動的にOnDrawがコールされるので強制的に再描画する必要はないと思いますが。

IndigoS
質問者

補足

回答ありがとうございます.説明が下手ですいません… ウインドウをCViewとCFormViewに分割して,CFormView側のボタンを押すとCView側に線を引く,というのをやりたいのです(まだ分かりづらいでしょうか,すいません) InvalidateとUpdateWindowを呼び出してみたところ,無事再描画はされました.ありがとうございます. OnUpdateで画面を更新するためには,このようにこちらから何か指定しなければいけないのでしょうか?

その他の回答 (3)

  • valvelde
  • ベストアンサー率35% (46/129)
回答No.4

OnUpdate関数内でCWnd::GetDCをコールしてCDCのインスタンスを取得する。 取得したCDCのインスタンスで線を描画する。

  • valvelde
  • ベストアンサー率35% (46/129)
回答No.2

CWnd::UpdateWindowをコールする。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

pDoc->UpdateAllViews(NULL, 1, NULL); の前に pDoc->SetModifiedFlag(); を入れてみてはいかがでしょうか。

IndigoS
質問者

お礼

回答ありがとうございます. 試してみたのですが,どうもやっぱりOnDrawは呼び出されないようです. 他の方法も試してみようと思います. ありがとうございました.

関連するQ&A