Doc/View mit Splitter. Wieso kennt keine View ihr Document?

Perdan

Mitglied
Hallo zusammen,

Ich habe ein MDI Projekt mit Splitter.

Das Problem: Die View's die ich in den Splitter eingehängt habe bekommen mit GetDocument() keinen Zeiger auf das aktuelle Dokument.
Der von CMDIChildWnd abgeleitete Frame bekommt ebenfalls keinen Zeiger auf das Dokument.

Im Folgenden ein paar Ausschnitte aus meinem Quellcode.

Aus der InitInstance() des Projektes:
Code:
CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_ROEPatternGenerTYPE,
RUNTIME_CLASS(CProjectDoc),
RUNTIME_CLASS(CMusterEditorFrm), // custom MDI child frame
RUNTIME_CLASS(CMusterEditorNavigationView));
if (!pDocTemplate)
      return FALSE;
AddDocTemplate(pDocTemplate);


class CMusterEditorFrm : public CMDIChildWnd
Code:
BOOL CMusterEditorFrm::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
{
        if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
		| CBRS_TOOLTIPS | CBRS_GRIPPER | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
		!m_wndToolBar.LoadToolBar(IDR_MUSTER_EDITOR_TOOLBAR))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}

	if(!m_wndSplitter.CreateStatic(this, 1, 2))
	{
		TRACE(_T("Splitter konnte nicht erstellt werden!"));
		return false;
	}

	if(!m_wndSplitter.CreateView(0, 0, pContext->m_pNewViewClass, CSize(0,0), pContext))
	{
		TRACE(_T("ListCtrlView konnte nicht erstellt werden!"));
		return false;
	}

	m_wndSplitter.SetColumnInfo(0, 150, 0);

	if(!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMusterEditorDrawView), CSize(0,0), pContext))
	{
		TRACE(_T("ListCtrlView konnte nicht erstellt werden!"));
		return false;
	}

	return true; 
}

Es wäre super wenn mir wer helfen könnte wo mein Fehler liegt.

MfG

Perdan
 
Zurück