<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SDI - Zwischen Views wechseln]]></title><description><![CDATA[<p>Hallo ich arbeite an einem SDI Projekt mit VisualStudio 6. Ich möchte dabei zwischen verschiedenen Views wechseln: CMyMultiviewView und CNextView, wobei CMyMultiviewView das Standartview ist. CNextView ist eine eigene Klasse, abgeleitet von CView.</p>
<p>Zum wechseln habe ich folgende Funktion geschrieben:</p>
<pre><code class="language-cpp">void CMainFrame::SwitchView(void)
{
	CView *pOldView;
	CView *pNewView;
	//pOldView-&gt;MessageBox(&quot;In Switch View&quot;);

	//Zeiger Auf aktives View holen
	pOldView=GetActiveView();
	//Zeiger auf das aktive View retten
	m_pCFirstView=pOldView;

	//Zweites View erstellen
	CRuntimeClass *pCR=RUNTIME_CLASS(CNextView);
	m_pCSecondView = static_cast&lt;CView*&gt;(pCR-&gt;CreateObject());
	//ID des Views ungleich AFX_IDW_PANE_FIRST setzen
	m_pCSecondView-&gt;Create(NULL,NULL,AFX_WS_DEFAULT_VIEW
                             ,rectDefault,this,AFX_IDW_PANE_FIRST+1,NULL);

	pNewView = m_pCFirstView;

	//IDs austauschen
	int nChildID=pNewView-&gt;GetDlgCtrlID();
	pNewView-&gt;SetDlgCtrlID(AFX_IDW_PANE_FIRST);
	pOldView-&gt;SetDlgCtrlID(nChildID);

	//Zeiger auf das Dokument holen
	CDocument *pDoc= pOldView-&gt;GetDocument();

	//View mit Dokument verbinden
	pDoc-&gt;AddView(pNewView);
	pDoc-&gt;RemoveView(pOldView);

	//Aktives View dem Rahmenfenster mitteilen
	SetActiveView(pNewView);
	//Und Viewgröße neu berechnen

	RecalcLayout();
	//View anzeigen bzw. verbergen
	pNewView-&gt;ShowWindow(SW_SHOW);
	pOldView-&gt;ShowWindow(SW_HIDE);

}
</code></pre>
<p>Allerding bekomme ich immer einen Laufzeitfehler. Der Fehler tritt beim Verbinden der Views mit dem Dokument auf. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Was mache ich falsch ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Bitte um Hilfe!</p>
<p>gruß DR</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160512/sdi-zwischen-views-wechseln</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 18:49:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160512.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 26 Sep 2006 14:32:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SDI - Zwischen Views wechseln on Tue, 26 Sep 2006 14:32:38 GMT]]></title><description><![CDATA[<p>Hallo ich arbeite an einem SDI Projekt mit VisualStudio 6. Ich möchte dabei zwischen verschiedenen Views wechseln: CMyMultiviewView und CNextView, wobei CMyMultiviewView das Standartview ist. CNextView ist eine eigene Klasse, abgeleitet von CView.</p>
<p>Zum wechseln habe ich folgende Funktion geschrieben:</p>
<pre><code class="language-cpp">void CMainFrame::SwitchView(void)
{
	CView *pOldView;
	CView *pNewView;
	//pOldView-&gt;MessageBox(&quot;In Switch View&quot;);

	//Zeiger Auf aktives View holen
	pOldView=GetActiveView();
	//Zeiger auf das aktive View retten
	m_pCFirstView=pOldView;

	//Zweites View erstellen
	CRuntimeClass *pCR=RUNTIME_CLASS(CNextView);
	m_pCSecondView = static_cast&lt;CView*&gt;(pCR-&gt;CreateObject());
	//ID des Views ungleich AFX_IDW_PANE_FIRST setzen
	m_pCSecondView-&gt;Create(NULL,NULL,AFX_WS_DEFAULT_VIEW
                             ,rectDefault,this,AFX_IDW_PANE_FIRST+1,NULL);

	pNewView = m_pCFirstView;

	//IDs austauschen
	int nChildID=pNewView-&gt;GetDlgCtrlID();
	pNewView-&gt;SetDlgCtrlID(AFX_IDW_PANE_FIRST);
	pOldView-&gt;SetDlgCtrlID(nChildID);

	//Zeiger auf das Dokument holen
	CDocument *pDoc= pOldView-&gt;GetDocument();

	//View mit Dokument verbinden
	pDoc-&gt;AddView(pNewView);
	pDoc-&gt;RemoveView(pOldView);

	//Aktives View dem Rahmenfenster mitteilen
	SetActiveView(pNewView);
	//Und Viewgröße neu berechnen

	RecalcLayout();
	//View anzeigen bzw. verbergen
	pNewView-&gt;ShowWindow(SW_SHOW);
	pOldView-&gt;ShowWindow(SW_HIDE);

}
</code></pre>
<p>Allerding bekomme ich immer einen Laufzeitfehler. Der Fehler tritt beim Verbinden der Views mit dem Dokument auf. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Was mache ich falsch ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Bitte um Hilfe!</p>
<p>gruß DR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144839</guid><dc:creator><![CDATA[DigitalRevolution]]></dc:creator><pubDate>Tue, 26 Sep 2006 14:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to SDI - Zwischen Views wechseln on Tue, 26 Sep 2006 16:39:11 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ist da evtl ein Zeiger NULL?<br />
Aber, zu genau dem Problem hab ich was in der FAQ. Schau doch mal, ob dir das hilft. <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-81908.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-81908.html</a><br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144924</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Tue, 26 Sep 2006 16:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to SDI - Zwischen Views wechseln on Wed, 27 Sep 2006 11:59:52 GMT]]></title><description><![CDATA[<p>Vielen Dank für deine Antort, ich muss allerdings gestehen, der Fehler lag an meinem Code: in Zeile 19 muss es heißen</p>
<pre><code class="language-cpp">pNewView=m_pCSecondView
</code></pre>
<p>...</p>
<p>Nun hat sich aber ein neuer Fehler aufgetan:<br />
Ich habe eine Klasse (CMyFormView, die von CFormView erbt) dem Projekt hinzugefügt. Wenn ich jetzt versuche</p>
<pre><code class="language-cpp">m_pCFormView-&gt;Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,rectDefault,this,AFX_IDW_PANE_FIRST+1,NULL);
</code></pre>
<p>auszuführen erscheint folgender Compilerfehler:<br />
<em>error C2248: 'CFormView::Create': Kein Zugriff auf protected Element, dessen Deklaration in der Klasse &quot;CFormView&quot; erfolgte</em>.<br />
Ich habe schon alle Funktionen in meiner Klasse auf public gesetzt, der Fehler erscheint weiterhin. Und wenn ich die Funktion in der Klasse CFormView in afxext.h auf public setzte bekomme ich Linkerfehler (7stück...). Was kann ich tun??<br />
gruß DR</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1145362</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1145362</guid><dc:creator><![CDATA[DigitalRevolution]]></dc:creator><pubDate>Wed, 27 Sep 2006 11:59:52 GMT</pubDate></item><item><title><![CDATA[Reply to SDI - Zwischen Views wechseln on Wed, 27 Sep 2006 12:17:17 GMT]]></title><description><![CDATA[<p>Puh, also ich bin nicht ganz der Experte bei sowas, aber mein Versuch wäre, die Create zu überschreiben und dann da drin einfach die Basisklasse aufzurufen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Und: In der MFC darfst du nicht rumändern! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1145375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1145375</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 27 Sep 2006 12:17:17 GMT</pubDate></item></channel></rss>