m_wndTabs是一个CRichEditCtrl 
运行之后CRichEditCtrl没有文本编辑的光标,而且不刷新,代码就是下面的啦,求指教int COutputWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CDockablePane::OnCreate(lpCreateStruct) == -1)
return -1; // Create tabs window:
if (!m_wndTabs.Create (CMFCTabCtrl::STYLE_FLAT, CRect (0, 0, 0, 0), this, 1))
{
TRACE0("Failed to create output tab window\n");
return -1;      // fail to create
} m_wndToolBar.Create (this, AFX_DEFAULT_TOOLBAR_STYLE, IDR_FORMATBAR);
m_wndToolBar.LoadToolBar (IDR_FORMATBAR, 0, 0, TRUE /* Is locked */); m_wndToolBar.SetPaneStyle(m_wndToolBar.GetPaneStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY); m_wndToolBar.SetPaneStyle (
m_wndToolBar.GetPaneStyle () & 
~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM |CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT)); m_wndToolBar.SetOwner (this); // All commands will be routed via this control , not via the parent frame:
m_wndToolBar.SetRouteCommandsViaFrame (FALSE); return 0;
}void COutputWnd::OnSize(UINT nType, int cx, int cy) 
{
CDockablePane::OnSize(nType, cx, cy); CRect rectClient,rectCombo;
GetClientRect (rectClient); int cyTlb = m_wndToolBar.CalcFixedLayout (FALSE, TRUE).cy; m_wndToolBar.SetWindowPos (NULL,
rectClient.left, 
rectClient.top,
rectClient.Width (),
cyTlb,
SWP_NOACTIVATE | SWP_NOZORDER); m_wndTabs.SetWindowPos (NULL, rectClient.left, rectClient.top + cyTlb, 
rectClient.Width (), rectClient.Height () - cyTlb,
SWP_NOACTIVATE | SWP_NOZORDER);
}

解决方案 »

  1.   

    我更想嵌入一个CRichEditView,和上面的写法差不多,但是在create时触发断言。
    对MFC不熟悉,请各位大神指教。
      

  2.   

    真是太迷糊了,    
    if (!m_wndTabs.Create (CMFCTabCtrl::STYLE_FLAT, CRect (0, 0, 0, 0), this, 1))
    {
         TRACE0("Failed to create output tab window\n");
         return -1;      // fail to create
    }
    风格写错了,不过嵌入CRichEditView还是会崩溃
      

  3.   

    嵌入CRichEditView在退出程序时会发生堆栈错误。
      

  4.   

    嵌入CRichEditView 析构时报错,没解决。
    滚动条什么的应该是STYLE设定的问题吧。
    不了解MFC