<?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, Splitter und wechselnde Ansichten]]></title><description><![CDATA[<p>Hallo zusammen!<br />
Da ich noch unerfahren bin habe ich mir ein Projekt gesucht.<br />
Nch einigem hin und her bin ich soweit gekommen, eine SDI-Awendung zu erstellen mit SplitterWnd unterstützung.<br />
So weit so gut. Die Anwendung wird erstellt die Ansicht wird gesplittet, oben CFormView im unteren Teil CListView. Jetzt habe ich eine zweite Ansicht implementiert. Nach auswahl im Menü wird eine neue Ansicht (CView) erstellt und angezeigt. Funktioniert wunderbar. Leider kommt dann beim zurückschalten zum SplitterWnd das Problem.<br />
Es wird zwar das FormView erstellt und angezeigt, allerdings nicht gesplittert. FormView braucht jetzt das ganze Fenster, ListView fällt unter den Tisch. Ausserdem ist das Splitten des Ansicht jetzt deaktiviert.<br />
Ich habe schon versucht splitterWnd statt in CMainFrame in der View Klasse zu initialisieren. Hat natürlich nicht funktioniert.</p>
<p>Ich poste mal den Code zum Umschalten der Ansichten:</p>
<pre><code class="language-cpp">CView* pAlteAnsicht=GetActiveView();
  CView* pNeueAnsicht;
  int Nr;
  if(m_bAnsicht)
  {
    pNeueAnsicht=(CView*) new CtmpSDIView;
    Nr=1;
  }
  else
  {
    pNeueAnsicht=(CView*) new CConsumGraphView;
    Nr=2;
  }
 	m_bAnsicht=!m_bAnsicht;

  CCreateContext kontext;
  kontext.m_pCurrentDoc = pAlteAnsicht-&gt;GetDocument();
  pNeueAnsicht-&gt;Create(NULL,NULL,WS_BORDER|WS_CHILD,CFrameWnd::rectDefault,this,Nr,&amp;kontext);
  pNeueAnsicht-&gt;OnInitialUpdate();
  SetActiveView(pNeueAnsicht);
  pNeueAnsicht-&gt;ShowWindow(SW_SHOW);
  pAlteAnsicht-&gt;ShowWindow(SW_HIDE);
  pAlteAnsicht-&gt;SetDlgCtrlID(pAlteAnsicht-&gt;GetRuntimeClass() == RUNTIME_CLASS(CtmpSDIView) ?1:2);
  pNeueAnsicht-&gt;SetDlgCtrlID(AFX_IDW_PANE_FIRST);
  RecalcLayout();
</code></pre>
<p>Schönen Tag an alle<br />
Wolfgang</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/65391/sdi-splitter-und-wechselnde-ansichten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 05 Jun 2026 11:57:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/65391.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 18 Feb 2004 18:00:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SDI, Splitter und wechselnde Ansichten on Wed, 18 Feb 2004 18:00:03 GMT]]></title><description><![CDATA[<p>Hallo zusammen!<br />
Da ich noch unerfahren bin habe ich mir ein Projekt gesucht.<br />
Nch einigem hin und her bin ich soweit gekommen, eine SDI-Awendung zu erstellen mit SplitterWnd unterstützung.<br />
So weit so gut. Die Anwendung wird erstellt die Ansicht wird gesplittet, oben CFormView im unteren Teil CListView. Jetzt habe ich eine zweite Ansicht implementiert. Nach auswahl im Menü wird eine neue Ansicht (CView) erstellt und angezeigt. Funktioniert wunderbar. Leider kommt dann beim zurückschalten zum SplitterWnd das Problem.<br />
Es wird zwar das FormView erstellt und angezeigt, allerdings nicht gesplittert. FormView braucht jetzt das ganze Fenster, ListView fällt unter den Tisch. Ausserdem ist das Splitten des Ansicht jetzt deaktiviert.<br />
Ich habe schon versucht splitterWnd statt in CMainFrame in der View Klasse zu initialisieren. Hat natürlich nicht funktioniert.</p>
<p>Ich poste mal den Code zum Umschalten der Ansichten:</p>
<pre><code class="language-cpp">CView* pAlteAnsicht=GetActiveView();
  CView* pNeueAnsicht;
  int Nr;
  if(m_bAnsicht)
  {
    pNeueAnsicht=(CView*) new CtmpSDIView;
    Nr=1;
  }
  else
  {
    pNeueAnsicht=(CView*) new CConsumGraphView;
    Nr=2;
  }
 	m_bAnsicht=!m_bAnsicht;

  CCreateContext kontext;
  kontext.m_pCurrentDoc = pAlteAnsicht-&gt;GetDocument();
  pNeueAnsicht-&gt;Create(NULL,NULL,WS_BORDER|WS_CHILD,CFrameWnd::rectDefault,this,Nr,&amp;kontext);
  pNeueAnsicht-&gt;OnInitialUpdate();
  SetActiveView(pNeueAnsicht);
  pNeueAnsicht-&gt;ShowWindow(SW_SHOW);
  pAlteAnsicht-&gt;ShowWindow(SW_HIDE);
  pAlteAnsicht-&gt;SetDlgCtrlID(pAlteAnsicht-&gt;GetRuntimeClass() == RUNTIME_CLASS(CtmpSDIView) ?1:2);
  pNeueAnsicht-&gt;SetDlgCtrlID(AFX_IDW_PANE_FIRST);
  RecalcLayout();
</code></pre>
<p>Schönen Tag an alle<br />
Wolfgang</p>
]]></description><link>https://www.c-plusplus.net/forum/post/462406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/462406</guid><dc:creator><![CDATA[wbiker]]></dc:creator><pubDate>Wed, 18 Feb 2004 18:00:03 GMT</pubDate></item><item><title><![CDATA[Reply to SDI, Splitter und wechselnde Ansichten on Thu, 19 Feb 2004 08:01:42 GMT]]></title><description><![CDATA[<p>Vielleicht hilft dir das ja weiter:<br />
<a href="http://www.cherea.de/bitbucket/multisplitwnd/multisplitwnd.html" rel="nofollow">http://www.cherea.de/bitbucket/multisplitwnd/multisplitwnd.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/462787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/462787</guid><dc:creator><![CDATA[peterchen]]></dc:creator><pubDate>Thu, 19 Feb 2004 08:01:42 GMT</pubDate></item><item><title><![CDATA[Reply to SDI, Splitter und wechselnde Ansichten on Thu, 19 Feb 2004 17:57:16 GMT]]></title><description><![CDATA[<p>Danke &gt;Peterchen. Momentan habe ich leider nicht die Zeit aber wenn dann werde ich das mal durchschauen.<br />
Thx<br />
Wolfgang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/463440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/463440</guid><dc:creator><![CDATA[Bin in der Arbeit]]></dc:creator><pubDate>Thu, 19 Feb 2004 17:57:16 GMT</pubDate></item></channel></rss>