<?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[MDI-Document - Ansichten]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>Neues Projekt neue Fragen.<br />
Ich habe noch nie an einem MDI-Projekt gearbeitet.<br />
Was die Literatur so bietet ist nicht gerade sehr viel.<br />
Auch wurden meine folgenden Fragen schon mehrfach gestellt ,<br />
jedoch nicht erschöpfend beantwortet.<br />
Also das Projekt erstellen und damit arbeiten ist ja gar nicht so sehr das Problem.<br />
Aber nun möchte ich neue Fenster öffnen welche jedoch jedes eine ander Ansichtsart hat ,<br />
wie zB HTMLView orde Formview.<br />
Ich habe das nun so weit verstanden , dass man dazu jeweils eine eigene<br />
Documentklasse erstellen und dazu entsprechend eine View-Klasse .<br />
Frag ist nur: wie erstelle ich diese Klassen?</p>
<p>Vielleicht hat ja jemand ein gutes Tutorial oder BUch wo das entspechend erklärt wird,<br />
auf jedenfall wäre ich für Eure Hilfe sehr dankbar.</p>
<p>Danke und Gruß<br />
Linus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166458/mdi-document-ansichten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 05:53:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166458.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 29 Nov 2006 14:18:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MDI-Document - Ansichten on Wed, 29 Nov 2006 14:18:21 GMT]]></title><description><![CDATA[<p>Hallo Leute</p>
<p>Neues Projekt neue Fragen.<br />
Ich habe noch nie an einem MDI-Projekt gearbeitet.<br />
Was die Literatur so bietet ist nicht gerade sehr viel.<br />
Auch wurden meine folgenden Fragen schon mehrfach gestellt ,<br />
jedoch nicht erschöpfend beantwortet.<br />
Also das Projekt erstellen und damit arbeiten ist ja gar nicht so sehr das Problem.<br />
Aber nun möchte ich neue Fenster öffnen welche jedoch jedes eine ander Ansichtsart hat ,<br />
wie zB HTMLView orde Formview.<br />
Ich habe das nun so weit verstanden , dass man dazu jeweils eine eigene<br />
Documentklasse erstellen und dazu entsprechend eine View-Klasse .<br />
Frag ist nur: wie erstelle ich diese Klassen?</p>
<p>Vielleicht hat ja jemand ein gutes Tutorial oder BUch wo das entspechend erklärt wird,<br />
auf jedenfall wäre ich für Eure Hilfe sehr dankbar.</p>
<p>Danke und Gruß<br />
Linus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183808</guid><dc:creator><![CDATA[linus]]></dc:creator><pubDate>Wed, 29 Nov 2006 14:18:21 GMT</pubDate></item><item><title><![CDATA[Reply to MDI-Document - Ansichten on Wed, 29 Nov 2006 18:08:34 GMT]]></title><description><![CDATA[<p>hab das mal schnell aus nem anderen thread kopiert wo ich darauf geantwortet hab der lag glaub ich auf der zweiten seite ganz unten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>geh in dein MDI Project und erstell dir unter Arbeitsbereich/Resourcen/Dialog einen neuen FormViewDialog (IDD_FORMVIEW). Rechte Maustaste auf den Dialog und öffne den Klassenassi und erstelle für den FormViewDialog eine neue klasse (CNewFormView) achte aber darauf das du die neue klasse nicht von CDialog ableitest sondern von CFormView.</p>
<p>geh jetzt in die Menuleiste des MFC Einfügen/Neue Klasse und erstell dir eine weiter neue Klasse (CNewEditView) diese leitest du von CEditView ab.</p>
<p>Geh jetzt in die C....App.cpp klasse deiner Anwendung. als erstes includest du jetzt die Header der gerade erstellten klassen. unterhalb der vorhandenen include dateien.</p>
<p>mach jetzt die C....App.h auf und erstell zwei variablen</p>
<pre><code>CMultiDocTemplate* m_pDocFormView;
CMultiDocTemplate* m_pDocEditView;
</code></pre>
<p>in der C...App::InitInstance() schreibst du unter</p>
<p>CMultiDocTemplate* pDocTemplate;<br />
pDocTemplate = new CMultiDocTemplate(<br />
.....);<br />
AddDocTemplate(pDocTemplate);</p>
<pre><code>m_pDocFormView = new CMultiDocTemplate(
		[b]IDD_FORMVIEW[/b],//&lt;--hier gegebenen fals die ID deklaration eures Dialoges eintragen
		RUNTIME_CLASS(C.....Doc),//&lt;--Hier die Documentklasse eures Projectes eintragen
		RUNTIME_CLASS(CChildFrame), 
		RUNTIME_CLASS( [b]CNewFormView[/b]));//&lt;--hier die Neu erstellte Klasse eintragen
//	AddDocTemplate(m_pDocFormView);

	m_pDocEditView = new CMultiDocTemplate(
		IDR_CHANGETYPE,//&lt;-- hier könnte man ein neues Menu eintragen
		RUNTIME_CLASS(C....Doc),),//&lt;--Hier die Documentklasse eures Projectes eintragen
		RUNTIME_CLASS(CChildFrame), 
		RUNTIME_CLASS( [b]CNewEditView[/b]));//&lt;--hier die Neu erstellte Klasse eintragen
//	AddDocTemplate(m_pDocEditView);
</code></pre>
<p>unter Arbeitsbereich/Resourcen/Menu unter Ansicht (oder wo es dir beliebt) erstellst du zwei neue Button<br />
IDC_FORMVIEW //Beschriftung Form View<br />
IDC_EDITVIEW //Beschriftung Edit View</p>
<p>in der Haupt C...View.cpp deiner Anwendung erstellst du jetzt für die 2 Button in der Menuleiste ein COMMAND Funktion.</p>
<p>in die OnEditview() Funktion schreibst du</p>
<pre><code>CDocument *pDoc = (CDocument*)GetDocument();
CFrameWnd *frameWnd = ((C....App*)AfxGetApp())-&gt;[b]m_pDocEditView[/b]-&gt;CreateNewFrame(pDoc, NULL);
frameWnd-&gt;InitialUpdateFrame(pDoc, TRUE);
</code></pre>
<p>in die OnFormview() funktion schreibst du</p>
<pre><code>CDocument *pDoc = (CDocument*)GetDocument();
CFrameWnd *frameWnd = ((C....App*)AfxGetApp())-&gt;[b]m_pDocFormView[/b]-&gt;CreateNewFrame(pDoc, NULL);
frameWnd-&gt;InitialUpdateFrame(pDoc, TRUE);
</code></pre>
<p>danach sollten die verschieden view's je nach button klick aufgehn.</p>
<p>NEW EDIT:<br />
erstell die button im Menu aber nicht im MainFrame menu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183858</guid><dc:creator><![CDATA[LowFly]]></dc:creator><pubDate>Wed, 29 Nov 2006 18:08:34 GMT</pubDate></item><item><title><![CDATA[Reply to MDI-Document - Ansichten on Wed, 29 Nov 2006 16:56:14 GMT]]></title><description><![CDATA[<p>Danke für die Antwort.</p>
<p>Ich habe versucht DeinerAnweisung zu folgen . Dabei habe ich nur 3 Probleme/Fragen:</p>
<ol>
<li></li>
</ol>
<blockquote>
<p>m_pDocFormView = new CMultiDocTemplate(<br />
IDD_FORMVIEW,<br />
RUNTIME_CLASS(CChangeViewsDoc),<br />
RUNTIME_CLASS(CChildFrame),<br />
RUNTIME_CLASS( CNewFormView));</p>
</blockquote>
<p>Mein Compiler streikt bzgl CChangeViewsDoc: Keine Klasse oder Namespace</p>
<ol start="2">
<li></li>
</ol>
<blockquote>
<p>in der Haupt C...View.cpp deiner Anwendung erstellst du jetzt für die 2 Button in der Menuleiste ein COMMAND Funktion</p>
</blockquote>
<p>Mein Projekt hat nur folgende Klassen:<br />
CmditestApp<br />
CmditestDoc<br />
CmditestView<br />
CNewFormView<br />
CMainFrame<br />
CChildFrame<br />
CAboutDlg</p>
<p>Was meinst Du mit Haupt C...View.cpp?<br />
Wenn ich in CmditestView eine COMMAND-Funktion erstelle so sind<br />
dort jedoch die Membervariablen m_pDocEditView und m_pDocFormView nicht bekannt.</p>
<ol start="3">
<li></li>
</ol>
<blockquote>
<p>// AddDocTemplate(m_pDocFormView);</p>
</blockquote>
<p>Warum hast Du diese Zeile herausgenomen?</p>
<p>Danke für Deine Hilfe<br />
Gruß Linus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183945</guid><dc:creator><![CDATA[linus]]></dc:creator><pubDate>Wed, 29 Nov 2006 16:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to MDI-Document - Ansichten on Wed, 29 Nov 2006 18:11:20 GMT]]></title><description><![CDATA[<p>1:</p>
<blockquote>
<p>Mein Compiler streikt bzgl CChangeViewsDoc: Keine Klasse oder Namespace</p>
</blockquote>
<p>upps sorry mein fehler<br />
hier gehört in deinem fall <strong>CmditestDoc</strong> hin und für <strong>IDD_FORMVIEW</strong> must du die ID deklaration deines dialoges eintragen.</p>
<p>2:</p>
<blockquote>
<p>Was meinst Du mit Haupt C...View.cpp?</p>
</blockquote>
<p>das wäre bei dir die <strong>CmditestView</strong><br />
somit auch die button funktion in diese classe</p>
<blockquote>
<p>Wenn ich in CmditestView eine COMMAND-Funktion erstelle so sind<br />
dort jedoch die Membervariablen m_pDocEditView und m_pDocFormView nicht bekannt</p>
</blockquote>
<p>doch sind sie da du sie in der C...App.h erstellen sollst das wäre bei dir die <strong>CmditestApp</strong> und diese wird bei dir in der CmditestView.cpp unterhalb der StdAfx.h includet sollte bei dir #include &quot;mditest.h&quot; heisen</p>
<blockquote>
<p>//AddDocTemplate(m_pDocFormView);<br />
Warum hast Du diese Zeile herausgenomen?</p>
</blockquote>
<p>schalt sie an und du wirst sehn was passiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> LOL nein die function AddDocTemplate sorgt dafür das beim start deines progs. die standart seite aufgeht. und zwar die in der C...App unter pDocTemplate deklariert wurde. wenn du nun mehrer MultiDocTemplates an die funktion AddDocTemplate übergibst kommt bevor dein prog startet ein kleiner dialog in dem du wählen kannst welche seite als erstes erscheint. das wollte ich dir ersparen. aber wie gesagt probier es einfach mal aus <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>NEW EDIT:<br />
mir ist da noch was aufgefallen<br />
hier in dieser zeile bei den buttonfunktionen</p>
<pre><code>CFrameWnd *frameWnd = (([b]C....App[/b]*)AfxGetApp())-&gt;
</code></pre>
<p>mist du C....App mit deiner klasse <strong>CmditestApp</strong> austauschen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1183966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1183966</guid><dc:creator><![CDATA[LowFly]]></dc:creator><pubDate>Wed, 29 Nov 2006 18:11:20 GMT</pubDate></item><item><title><![CDATA[Reply to MDI-Document - Ansichten on Wed, 29 Nov 2006 22:36:39 GMT]]></title><description><![CDATA[<p>Klappt prima<br />
genau das was ich suchte</p>
<p>Vielen Dank<br />
Linus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1184133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1184133</guid><dc:creator><![CDATA[linus]]></dc:creator><pubDate>Wed, 29 Nov 2006 22:36:39 GMT</pubDate></item></channel></rss>