停靠CControlBar派生的窗口

时间:2020-03-06 15:02:39  来源:igfitidea点击:

如何将CControlBar派生的窗口停靠在拆分器窗口(CSplitterWnd)的中间?每当拆分器移动时,我都希望重新定位栏。

为了使我更清楚一点,请想象一下Visual Studio(仅适用于MFC)的"对话框编辑器"中的垂直标尺。每当调整树形视图的大小时,它就会重新定位。

解决方案

哔叽,
抱歉,我不太清楚。拆分器将位于资源视图和标尺栏之间。它看起来像这样:

资源视图|垂直尺|看法

无论如何,我都找到了(现在很明显)的答案:将主框架分成三个窗口:

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)));

阿尔夫

如果是VS,则不使用拆分器:
资源视图是可调整大小的ControlBar(外观和感觉就像一个拆分器,但它不是CSplitterWnd)。
其余的是子框架(选项卡式或者MDI。转到"工具/选项/环境/常规",然后选择"多个文档"以说服自己)。标尺是子框架的一部分(控制栏?)。

就我们而言,我认为我们不希望使用3窗格拆分器。我们需要一个2窗格拆分器,并且控制栏应该是视图的一部分(它本身不是CControlBar)。除非在这种情况下使用MDI,否则可以在子框架中将其设为真正的ControlBar。

高温超导