• ベストアンサー
  • すぐに回答を!

CDocumentの取得方法について

  • 質問No.22048
  • 閲覧数402
  • ありがとう数1
  • 気になる数1
  • 回答数1
  • コメント数0

お礼率 60% (48/80)

CTreeCtrlクラスを使って、
ドキュメントクラスのデータを
ダイアログ上のツリーコントロールに
表示させるプログラムを作っています。

CViewクラスでは、GetDocument()関数で
ドキュメントデータを取得できますが、
CTreectrlクラスには、そのような関数がないので、
困っています。


どうすれば、ドキュメントデータをツリー表示できるのかを教えてください。

よろしくお願いします。

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 28% (42/146)

Viewのポインタを取得し、必要なCView継承クラスへキャストして
GetDocument()すれば問題ないです。
Viewを取得する方法は沢山あります。
例えばCTreeCtrlがViewの子ウィンドウとして生成されてるなら

CMainFormView* pv = (CMainFormView *)pTreeCtrl->GetParent();

や、コントロールが別のダイアログにあり、且つViewが
一つだけの場合は、

CFrameWnd* pfrm = (CFrameWnd *)AfxGetApp()->GetMainWindow();
CMainView* pv = (CMainView *)pfrm->GetActiveView();

複数viewがあった場合も、上記方法をちょっと工夫して
目的のViewが出てくるまでGetNextViewすればよいかと。
お礼コメント
zico

お礼率 60% (48/80)

ご教授ありがとうございました。

おかげさまで、無事Viewへのポインタを取得できました。

AfxGetApp関数やCFrameWndクラスのヘルプを見ることで
今まで見えなかった世界が開けてきました。

ありがとうございました。
投稿日時:2000/12/27 10:40
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

ピックアップ

ページ先頭へ