分割ウィンドウの作り方 ― 2006年10月26日 16時08分37秒
Visual C++
1.メインフレームのメンバ変数にCSplitterWndのインスタンスを追加する。
2.メインフレームにCFrameWnd::OnCreateClient()のオーバーライドを作成する。
3.ペインに割り当てるビューを定義する。
4.CFrameWnd::OnCreateClient()の中でペインの定義を行う。
CSplitterWnd::Create()またはCSplitterWnd::CreateStatic()
5.ペインにビューを結び付ける。
CSplitterWnd::CreateView()
● CSplitterWnd
ウィンドウを分割する機能を持つクラス。
分割したいウィンドウと結び付けて使用する。
分割された個々のクライアント領域をペインと呼ぶ。
ペインはメインフレームのCFrameWnd::OnCreateClient()内で初期化する。
動的分割ウィンドウの場合はCSplitterWnd::Create()を使用する。
静的分割ウィンドウの場合はCSplitterWnd::CreateStatic()を使用する。
ペインへのビュー割り当てはCSplitterWnd::CreateViewを使用する。
● 動的分割ウィンドウ
分割ウィンドウには初期状態では一つのビューしかない。
分割ボックスをユーザーの操作することで新しいペインが生成される。
● 静的分割ウィンドウ
分割ウィンドウが生成される同時にペインも生成される。
ペインの配置順序や数は固定されている。
● CSplitterWnd::Create( ~ )
動的分割ウィンドウとしてCSplitterWndインスタンスを初期化する。
<戻り値>
● CSplitterWnd::CreateStatic()
静的分割ウィンドウとして CSplitterWnd インスタンスを初期化する。
<戻り値>
● CSplitterWnd::CreateView()
ペインにビューを結び付ける。
<戻り値>
1.メインフレームのメンバ変数にCSplitterWndのインスタンスを追加する。
2.メインフレームにCFrameWnd::OnCreateClient()のオーバーライドを作成する。
3.ペインに割り当てるビューを定義する。
4.CFrameWnd::OnCreateClient()の中でペインの定義を行う。
CSplitterWnd::Create()またはCSplitterWnd::CreateStatic()
5.ペインにビューを結び付ける。
CSplitterWnd::CreateView()
● CSplitterWnd
ウィンドウを分割する機能を持つクラス。
分割したいウィンドウと結び付けて使用する。
分割された個々のクライアント領域をペインと呼ぶ。
ペインはメインフレームのCFrameWnd::OnCreateClient()内で初期化する。
動的分割ウィンドウの場合はCSplitterWnd::Create()を使用する。
静的分割ウィンドウの場合はCSplitterWnd::CreateStatic()を使用する。
ペインへのビュー割り当てはCSplitterWnd::CreateViewを使用する。
● 動的分割ウィンドウ
分割ウィンドウには初期状態では一つのビューしかない。
分割ボックスをユーザーの操作することで新しいペインが生成される。
● 静的分割ウィンドウ
分割ウィンドウが生成される同時にペインも生成される。
ペインの配置順序や数は固定されている。
● CSplitterWnd::Create( ~ )
動的分割ウィンドウとしてCSplitterWndインスタンスを初期化する。
<戻り値>
- 正常終了
- 0 以外
- その他
- 0
- pParentWnd
- 分割するウィンドウ
- nMaxRows
- 分割ウィンドウの最大行数
2 以下にする必要がある。 - nMaxCols
- 分割ウィンドウの最大列数2 以下にする必要がある。
- sizeMin
- ペインが表示されるときの最小値のサイズ
- pContext
- CCreateContext構造体へのポインタ
CFrameWnd::OnCreateClient()の引数pContextを渡せばよい。 - dwStyle
- ウィンドウスタイル
Default = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT - nID
- ウィンドウの子ウィンドウID
他の分割ウィンドウの中で入れ子になっていない場合はAFX_IDW_PANE_FIRST
分割ウィンドウに対して一意であればOK?
● CSplitterWnd::CreateStatic()
静的分割ウィンドウとして CSplitterWnd インスタンスを初期化する。
<戻り値>
- 正常終了
- 0 以外
- その他
- 0
- pParentWnd
- 分割するウィンドウ
- nRows
- 分割ウィンドウの行数
16 以下にする必要がある。 - nMaxCols
- 分割ウィンドウの列数
16 以下にする必要がある。 - dwStyle
- ウィンドウスタイル
Default = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT - nID
- ウィンドウの子ウィンドウID
他の分割ウィンドウの中で入れ子になっていない場合はAFX_IDW_PANE_FIRST
● CSplitterWnd::CreateView()
ペインにビューを結び付ける。
<戻り値>
- 正常終了
- 0 以外
- その他
- 0
- row
- 新しいビューを配置する分割ウィンドウの行番号
一番左が 1で、右に行く毎に +1 - col
- 新しいビューを配置する分割ウィンドウの列番号
一番上が 1で、下に行く毎に +1 - pViewClass
- 新しいビューのCRuntimeClassポインタ
マクロ関数で生成する場合は RUNTIME_CLASS( ビュークラス名 ) - sizeInit
- 新しいビューの初期サイズ
- pContext
- CCreateContext構造体へのポインタ
CFrameWnd::OnCreateClient()の引数pContextを渡せばよい。
コメント
トラックバック
このエントリのトラックバックURL: http://crimson-harberd.asablo.jp/blog/2006/10/26/575600/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。