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

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


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

よろしくお願いします。

A 回答 (1件)

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すればよいかと。
    • good
    • 0
この回答へのお礼

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

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

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

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

お礼日時:2000/12/27 10:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報