CMainFrameにCFrameWndをのせたときのCDocument

[戻る]
Akira 2006/05/20(土) 16:16:51
CMainFrameのOnCreateClientで

  pContext->m_pNewViewClass = RUNTIME_CLASS( CBaseFrame );
  m_pPrevFrame = (CBaseFrame*)CreateView( pContext );
  if( !m_pPrevFrame )    return FALSE;
  return TRUE;

としてCFrameWndから派生したCBaseFrameを生成しています.
すると,後で CMainFrame内でGetActiveDocument を呼ぶと
NULLを返してきます.
GetActiveDocumentをデバッガで追いかけると,CViewのドキュメントが
NULLとなっていて,どうやらCViewにドキュメントが関連付けられていないよう
です.

どのようにしたら,CDocumentのポインタをちゃんと取得できるように
なるのでしょうか?
よろしくお願いします.

ITO 2006/05/20(土) 21:28:42
> CFrameWndから派生したCBaseFrameを生成しています.
目的は何ですか。
CViewクラスや、CButton等のクラスではよく派生させて生成しますが、
CFrameWndはあまりやらないですが.........

Akira 2006/05/20(土) 22:07:49
今,動的に画面分割を行うプログラムを書いていて,
CSplitterWndの各ペインにツールバーつきのウインドウを貼り付けています.
起動時にも分割方法を選べるようにしていて,1画面で起動するときに
CMainFrameにCFrameWndを貼り付けたいと考えています.

ITO 2006/05/20(土) 23:55:47
MSDNライブラリーでサンプル「VIEWEX」をダウンロードしてみたらいいと思います。

古いスレッドには追加発言できません。