【发布时间】:2016-05-11 19:28:52
【问题描述】:
我想知道我们如何使用 CSplitterWndEx 将 DockablePane 拆分为 CView(用于绘制矩形/线条等)和 CFormView(用于放置 UI 控件,例如按钮、组合框等)。 DockablePane 将成为 MDI 应用程序的一部分。代码示例将非常有帮助。我在 MyDockablePane::OnCreate 函数上尝试了以下代码,但它只是显示了一个没有拆分器的“空白”DockablePane 窗口:(感谢您花时间研究它)
int MyDockablePane::OnCreate(LPCREATESTRUCT lpcs)
{
if (CDockablePane::OnCreate(lpcs) == -1)
return -1;
CRect cr;
GetClientRect(&cr);
m_wndSplitter.CreateStatic(this,1,2);
// MyFormView derived from CFormView
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(MyFormView),
CSize(cr.Width() *48/100, cr.Height()), NULL))
{
return FALSE;
}
// MyCView derived from CView
if (!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(MyCView),
CSize(cr.Width() * 52/100, cr.Height()), NULL))
{
return FALSE;
}
return TRUE;
}
// 在 MainFrame 我调用 DockablePane 的 Create, ShowPane, // EnableDocking,以及MainFrame的DockPane
【问题讨论】:
-
你不能创建两个可停靠的窗格吗?一个与 CView 和一个与 CFormView?您可以添加指向彼此的指针,以便他们轻松交流。
-
感谢 Robson 的想法。如果我需要带有 CFormView 的 DockablePane,我可以创建 CPaneDialog。我面临的问题是我希望它们(CView 和 CFormView)都在同一个窗口上。我来自 C++ Borland Builder 背景,不知道 MFC 这么难。
-
那么欢迎加入! =)
标签: mfc