停靠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。
高温超导