0

CControlBar 派生ウィンドウを分割ウィンドウ (CSplitterWnd) の中央にドッキングするにはどうすればよいですか? スプリッターを移動するたびにバーの位置を変更したいと思います。

私が求めているものをもう少し明確にするために、Visual Studio のダイアログ エディター (MFC のみ) の垂直ルーラーを想像してください。ツリー ビューのサイズが変更されるたびに再配置されます。

4

2 に答える 2

1

アルフ、

VS の場合、スプリッターは使用されません。リソース ビューはサイズ変更可能な ControlBar です (スプリッターのように見えますが、CSplitterWnd ではありません)。残りは子フレームです (タブ付きまたは MDI のいずれかです。ツール/オプション/環境/全般に移動し、複数のドキュメントを選択して納得してください)。定規は子フレームの一部 (コントロールバー?) です。

あなたの場合、3ペインスプリッターは必要ないと思います。2 ペイン スプリッターが必要であり、コントロール バーはビューの一部である必要があります (それ自体は CControlBar ではありません)。MDI を使用しない限り、子フレームで真の ControlBar にすることができます。

HTH

于 2008-10-10T10:15:48.067 に答える
0

セルジュ、すみません、よくわかりませんでした。スプリッターは、リソース ビューとルーラー バーの間に配置されます。次のようになります。

リソース ビュー | 垂直定規 | 写真 垂直定規 意見

いずれにせよ、私は(今や明らかな)答えを見つけました:メインフレームを3つのウィンドウに分割します:

m_wndSplitter.CreateStatic(this, 1, 3);

m_wndLeftPane.Create(&m_wndSplitter,WS_CHILD|WS_VISIBLE,m_wndSplitter.IdFromRowCol(0, 0));
m_ruler.Create(&m_wndSplitter,WS_CHILD|WS_VISIBLE,m_wndSplitter.IdFromRowCol(0, 1));

m_wndSplitter.CreateView(0, 2, pContext->m_pNewViewClass, CSize(300, 0), pContext);
SetActiveView((CScrollView*)m_wndSplitter.GetDlgItem(m_wndSplitter.IdFromRowCol(0, 2)));
于 2008-10-03T23:06:54.177 に答える