Splitter CreateStatic issue

Splitter CreateStatic issue

本文关键字:issue CreateStatic Splitter      更新时间:2023-10-16

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

我试图在MainFrm.cpp的顶部添加#include "MainFrm.h",但它又犯了一个关于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;
}

您需要包含在mainform .cpp文件中定义CMyView的头文件。确保你没有在MyView.h中包含MyView.h,也没有在MyView.h中包含MyDoc.h。这会形成一种循环依赖;如果需要,使用前向声明,以避免这样的循环。