Сплиттер CreateStatic проблема - PullRequest
0 голосов
/ 07 апреля 2011

Следующая ошибка возникает при попытке создать статический сплиттер в классе 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 Ответ

2 голосов
/ 07 апреля 2011

Вам необходимо включить заголовок, в котором вы определили CMyView, в файл MainFrm.cpp. Убедитесь, что вы не включили MyView.h в MyDoc.h, а MyDoc.h в MyView.h. Это создаст циклическую зависимость; при необходимости используйте предварительное объявление, чтобы избежать таких циклов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...