【问题标题】:Splitter CreateStatic issue拆分器 CreateStatic 问题
【发布时间】:2011-04-07 18:22:51
【问题描述】:

当我尝试在 MainFrame 类中创建静态拆分器时出现下一个错误。 错误 C2653:“CMyView”:不是类或命名空间名称 c:\projects\mt\mt\mainfrm.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;
}

【问题讨论】:

    标签: c++ mfc


    【解决方案1】:

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

    【讨论】:

    • 我在 MainFrm.cpp 中添加了#include "MTCDoc.h" #include "MTCView.h" 并且可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2010-11-26
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多