CEditViewでテキストファイルをオープン

[戻る]
みっちー 2005/01/09(日) 21:08:11
CEditViewを基本クラスにして、左ペインがCTreeViewで
右上がCListView、右下がCEditViewの画面を作っています。
CTestListViewがCListViewを継承したクラスで、後で追加したものです。
CTestTreeViewがCTreeViewを継承したクラスで、後で追加したものです。
CTestViewがCEditViewを継承したクラスで、プロジェクト作成時に作成
されたものです。
CEditViewにドキュメントクラスのOnOpenDocumentを利用して、テキスト
ファイルを開いて表示したいのですが、以下の場合はうまくいきますが
@とAの位置を入れ替えると「ファイルが大きすぎて開けません」のメッセージ
がでてファイルを開くことができません。
SDIを選択しましたが、ドキュメントとビューの関係がいまいち
理解できないため、原因がわかりません。ご教授ください。

// CMainFrame::OnCreateClient中
m_spWnd1 = new CSplitterWnd;
m_spWnd2 = new CSplitterWnd;
m_spWnd1->CreateStatic(this, 1, 2);
m_spWnd2->CreateStatic(m_spWnd1,2,1,
                       WS_CHILD | WS_VISIBLE | WS_BORDER,m_spWnd1->IdFromRowCol
(0,1));
m_spWnd2->CreateView(1,0,RUNTIME_CLASS(CTestView),CSize(0, 0), 
pContext);        // @
m_spWnd2->CreateView(0,0,RUNTIME_CLASS(CTestListView),CSize(0,100), 
pContext);   // A
m_spWnd1->CreateView(0,0,RUNTIME_CLASS(CTestTreeView),CSize(100, 0), pContext);

よろしくお願いいたします。
WindowsXP/VC++7

wood 2005/01/10(月) 06:20:23
誰かに怒られる前に一言、回答ではありません
丸付き文字は、使用禁止だそうです

>ドキュメントとビューの関係がいまいち
の質問ではなく「CSplitterWnd」の使用方法についての
質問と受け取って欲しいのでしょうか?

>CEditViewにドキュメントクラスのOnOpenDocumentを利用して、
とありますが、どのようにインプリメントしているか提示してみては
どうですか?

>「ファイルが大きすぎて開けません」
が出力されるまでのステップ実行やトレース実行はしてみましたか
通常ハンドルの取得異常のような場合、このようなメッセージ出力はされない
と思います
何らかのサイズチェックしている箇所があると思います

最後に、あなたの提示したソースはメインフレームの一部とビュークラスの登録の一部
しか提示されていません

もう少し丁寧に質問してみてはいかがでしょうか

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