Splitter CreateStatic问题

发布于 2024-10-30 18:17:11 字数 776 浏览 1 评论 0原文

当我尝试在 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;
}

I have next error when I tried to create a static splitter in MainFrame class.
Error C2653: 'CMyView' : is not a class or namespace name c:\projects\mt\mt\mainfrm.cpp 200 1 MT

I have tried to add #include "MainFrm.h" a the top of the MainFrm.cpp but it make another error about CMyDoc. How I can solve this issue?

    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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

强者自强 2024-11-06 18:17:11

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

You need to include the header where you defined CMyView in the MainFrm.cpp file. Make sure you don't include MyView.h in MyDoc.h, and MyDoc.h in MyView.h. That would create a cyclic dependency; use forward declaration if needed, to avoid such cycles.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文