Last Updated 2014/08/20 |
Programming Tips Visual C++ MFC 他のコントロール | 索 引 |
スプリッターウィンドウの追加
2014/08/20
VC(VC6)にて,アプリケーションウィザードでエクスプローラースタイルを選択すればスプリッターウィンドウが自動で生成される。 しかし,その場合,View に CTreeView しか選択出来ない。左のビューは各ビューから選択可能である。 CTreeView を使いたくない場合などは,エクスプローラースタイルを選択しないで,独自にスプリッターウィンドウを追加する。 まずは追加するビュークラスを作成する。 メニュー - 挿入(I) - クラスの新規作成(N)... ここで好きなビュークラスを派生させる。 続いてメインフレームにスプリッターウィンドウを追加する。
メインフレームに OnCreateClient() をオーバーライドする。 メニュー - 表示(V) - ClassWizard(W)...
MainFrm.cpp に以下が追加される。
MainFrm.cpp に以下を追加する。
class CTestDoc はビューの GetDocument() でエラーを発生させないように,不完全宣言をしておく。 (GetDocument()でドキュメントのポインタを返すから) そして,OnCreateClient() を修正する。 (追加するソースはアプリケーションウィザードでエクスプローラースタイルを選択した場合のソースを真似る) ここでは上下に分けるスプリッターウィンドウを生成する。
デフォルトでは,CFrameWnd::OnCreateClient(lpcs, pContext) の戻り値を返しているが,このままではスプリッターウィンドウは生成されない。 CFrameWnd::OnCreateClient(lpcs, pContext) の中で CreateView() しているのが原因。 それは呼び出さずに,TRUE を返す様に変更する。 参照 ウィンドウ分割 ウィンドウ分割固定化 スプリッターウィンドウで3ペイン |
|