如何在MFC的CSplitterWnd中保持两个视图都处于活动状态

时间:2019-01-16 05:35:50

标签: mfc csplitterwnd

我有MFC MDI应用程序。这样,对于一个子窗口,我有分割窗口。顶视图显示具有某些当前值的趋势,而底视图则具有Listctrl,Listctrl显示趋势的详细信息。我在两个视图中都使用OnDraw()更新某些内容。但是执行时,只有一个视图处于活动阶段。当我单击底视图时,顶部的趋势视图停止绘制趋势。在趋势视图中单击后,它将开始更新。为什么我在正常情况下都在单独的窗口中都有这两个视图,都可以正常工作。

BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
    // TODO: Add your specialized code here and/or call the base class

if(iWindowNumber == 4)   // Creating splitwindow for one child window
{

    CRect cr; 
    GetClientRect( &cr);

    if (!m_wndSplitter.CreateStatic(this, 2, 1))
        return FALSE;

    if(!m_wndSplitter.CreateView(0,0, RUNTIME_CLASS(CTrendView),CSize(cr.Width(), cr.Height()-200),pContext)||
        !m_wndSplitter.CreateView(1,0, RUNTIME_CLASS(COprEventLog),CSize(cr.Width(), cr.Height()-600),pContext))
    {
        m_wndSplitter.DestroyWindow();
        return FALSE;
    }
    m_wndSplitter.SetActivePane(1, 0);
    return TRUE;
}
    return CMDIChildWnd::OnCreateClient(lpcs, pContext);
}

我尝试了SetActivePane(),但是在默认情况下,它再次使底部窗口处于活动状态,而顶部窗口处于非活动状态。我希望两个窗口都应同时处于活动状态。

0 个答案:

没有答案