如何将DockablePane拆分为CView和CFormView

时间:2016-05-11 19:28:53

标签: mfc

我想知道如何使用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

1 个答案:

答案 0 :(得分:0)

尝试在代码末尾添加:

m_wndSplitter.SetWindowPos(NULL,cr.left, cr.top, cr.Width(), cr.Height(), SWP_NOZORDER);
m_wndSplitter.ShowWindow(SW_SHOW);