分割ウィンドウの作り方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インスタンスを初期化する。
<戻り値>
正常終了
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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
「このブログはどんな空間でしょう?
 ひらがな4文字でお答え下さい。」

コメント:

トラックバック

このエントリのトラックバックURL: http://crimson-harberd.asablo.jp/blog/2006/10/26/575600/tb