View in DockablePane anzeigen

sinamine

Mitglied
Hey Leute!

Ich habe eine MFC-Anwendung, welche es ermöglicht, mehrere Views (CScrollViews) in meinen Registerkarten anzuzeigen. Eine von den Views würde ich aber gerne etwas später in einem eigenen Fenster anzeigen lassen. Ich habe mir gedacht, in einem CDockablePane, welches ich dann auch beliebig andocken, vergrößern, verschieben, etc. kann.

Nachstehender Code ist aus meinem CDockablePane, wo ich eben die View anzeigen möchte und auch aus dem DocManager löschen (da ich die Ansicht im Register nicht mehr benötige).

Code:
	//m_pDesignView  --> Pointer auf meine View, welche ich im CDockablePane anzeigen möchte

	CRect rectClient;
	GetClientRect(rectClient);

	if(m_pDesignView)
	{
		m_pDesignView->SetWindowPos(this, rectClient.left, rectClient.top, 
			rectClient.Width(), rectClient.Height(),
			SWP_NOACTIVATE | SWP_NOZORDER);
		
		C_DesignDoc* pDoc = (C_DesignDoc*)m_pDesignView->GetDocument();
		
		if(pDoc)
			pDoc->OnNewDocument();			

                //nun aus dem DocManager löschen und in den Registerkarten nicht mehr anzeigen
		POSITION pos = theApp.m_pDocManager->GetFirstDocTemplatePosition();

		while(pos)
		{
			CDocTemplate* pDocTemp = theApp.m_pDocManager->GetNextDocTemplate(pos);

			ASSERT(pDocTemp != NULL);

			if(pDocTemp->IsKindOf(RUNTIME_CLASS(C_DesignDoc)))
			{
				delete pDocTemp;
			}
		}
	}

Nur leider wird mir im CDockablePane nichts angezeigt und bei der Codezeile

Code:
if(pDocTemp->IsKindOf(RUNTIME_CLASS(C_DesignDoc)))

bekomme ich immer false zurück, obwohl mein 2. Objekt in dem DocTemplate vom Typ C_DesignDoc ist.

Vielleicht gibt es auch eine andere Lösung, um eine View und ein Doc in einem anderen "Fenster" anzuzeigen?

Wäre euch für jede Hilfe dankbar!

Lg
 
Zurück