質問: CTreeCtrlクラスを使って、 ドキュメントクラスのデータを ダイアログ上のツリーコントロールに 表示させるプログラムを作っています。 CViewクラスでは、GetDocument()関数で ドキュメントデータを取得できますが、 CTreectrlクラスには、そのような関数がないので、 困っています。 どうすれば、ドキュメントデータをツリー表示できるのかを教えてください。 よろしくお願いします。
回答: 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すればよいかと。