Splitter CreateStatic问题

时间:2011-04-07 18:22:52

标签: c++ mfc

当我尝试在MainFrame类中创建静态拆分器时,我有下一个错误。 错误C2653:'CMyView':不是类或命名空间名称c:\ projects \ mt \ mt \ mainfrm.cpp 200 1 MT

我试图将#include“MainFrm.h”添加到MainFrm.cpp的顶部,但是它又产生了一个关于CMyDoc的错误。我怎么能解决这个问题?

    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
    CCreateContext* pContext)
{
    //calculate client size
    CRect cr;
    GetClientRect(&cr);

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

    if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyView), CSize(cr.Width() / 2, cr.Height()), pContext) ||
        !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMyView), CSize(cr.Width() / 2, cr.Height()), pContext))
    {
        m_wndSplitter.DestroyWindow();
        return FALSE;
    }
    return TRUE;
}

1 个答案:

答案 0 :(得分:2)

您需要在MainFrm.cpp文件中包含您定义CMyView的标头。确保不在MyDoc.h中包含MyView.h,在MyView.h中包含MyDoc.h。这会产生循环依赖;如果需要,使用前瞻性声明,以避免这种周期。