<?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[CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow]]></title><description><![CDATA[<p>Hallo,<br />
ich will in einer MFC-Dialog-Anwendung ein TabCtrl verwenden.<br />
Ich habe mich etwas an diesem Forumsbeitrag orientiert: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-162800.html" rel="nofollow">Beitrag</a></p>
<p>Damit alles Nachvollziehbar ist, fang ich ganz vorne an:<br />
Ich habe bisher ein neues Projekt erstellt (MFC-Dialog) und 2 Dialoge angelegt.<br />
(IDD_DIALOG1, IDD_DIALOG2)</p>
<p>Nun habe ich im OnInitDialog() meines Hauptdialoges (CTestDlg dlg) folgendes eingefügt:</p>
<pre><code class="language-cpp">CTabCtrl* m_Tabs;
	m_Tabs = ( CTabCtrl* ) GetDlgItem( IDC_TAB1 );

	CDialog* m_Dlg1 = ( CDialog* ) GetDlgItem( IDD_DIALOG1 );
	CDialog* m_Dlg2 = ( CDialog* ) GetDlgItem( IDD_DIALOG2 );

	TCITEM  Tab1;
    Tab1.mask    = TCIF_TEXT | TCIF_PARAM;
    Tab1.pszText = (LPTSTR)(LPCTSTR)&quot;Overview&quot;;
    Tab1.lParam  = (LPARAM)m_Dlg1;

	TCITEM  Tab2;
    Tab2.mask    = TCIF_TEXT | TCIF_PARAM;
    Tab2.pszText = (LPTSTR)(LPCTSTR)&quot;Statistic&quot;;
    Tab2.lParam  = (LPARAM)m_Dlg2;

    m_Tabs-&gt;InsertItem(0, &amp;Tab1);
    m_Tabs-&gt;InsertItem(1, &amp;Tab2);

	m_Dlg1-&gt;ShowWindow(SW_SHOW);
</code></pre>
<p>Doch wenn ich das Kompiliere bekomme ich eine Access Violation in der zeile:<br />
ASSERT(::IsWindow(m_hWnd)); //In der WINOCC.CPP</p>
<p>Meines Erachtens nach dürfte dass passieren, da ich die Dialoge noch nicht Created habe, vor dem ShowWindow.<br />
Also habe ich jetzt davor &quot;m_Dlg1-&gt;Create(IDD_DIALOG1, GetParent());&quot; gemacht.</p>
<p>Allerdings bekomme ich dann eine Acces Violation in der Zeile:<br />
m_lpszTemplateName = lpszTemplateName; //In DLGCORE.CPP</p>
<p>Kann mir erklären wie ich es hinbekomme, dass die Dialoge angezeigt werden können?</p>
<p>P.S.: Da ich annehme dass gleich wieder Leute kommen die sagen, dass ich CPropertySheet/CPropertyPage benutzen soll:<br />
Nach dem was ich bisher von CPropertySheet verstanden habe, ist dies für mich nicht geeignet(Ich brauche Buttons und<br />
Textfelder um mein TabCtrl herum), mal ganz abgesehen davon, dass ich das noch weniger verstehe wie den CTabCtrl.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/179974/ctabctrl-tabs-mit-dialogen-probleme-mit-showwindow</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 10:03:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/179974.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 27 Apr 2007 09:07:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 09:07:24 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich will in einer MFC-Dialog-Anwendung ein TabCtrl verwenden.<br />
Ich habe mich etwas an diesem Forumsbeitrag orientiert: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-162800.html" rel="nofollow">Beitrag</a></p>
<p>Damit alles Nachvollziehbar ist, fang ich ganz vorne an:<br />
Ich habe bisher ein neues Projekt erstellt (MFC-Dialog) und 2 Dialoge angelegt.<br />
(IDD_DIALOG1, IDD_DIALOG2)</p>
<p>Nun habe ich im OnInitDialog() meines Hauptdialoges (CTestDlg dlg) folgendes eingefügt:</p>
<pre><code class="language-cpp">CTabCtrl* m_Tabs;
	m_Tabs = ( CTabCtrl* ) GetDlgItem( IDC_TAB1 );

	CDialog* m_Dlg1 = ( CDialog* ) GetDlgItem( IDD_DIALOG1 );
	CDialog* m_Dlg2 = ( CDialog* ) GetDlgItem( IDD_DIALOG2 );

	TCITEM  Tab1;
    Tab1.mask    = TCIF_TEXT | TCIF_PARAM;
    Tab1.pszText = (LPTSTR)(LPCTSTR)&quot;Overview&quot;;
    Tab1.lParam  = (LPARAM)m_Dlg1;

	TCITEM  Tab2;
    Tab2.mask    = TCIF_TEXT | TCIF_PARAM;
    Tab2.pszText = (LPTSTR)(LPCTSTR)&quot;Statistic&quot;;
    Tab2.lParam  = (LPARAM)m_Dlg2;

    m_Tabs-&gt;InsertItem(0, &amp;Tab1);
    m_Tabs-&gt;InsertItem(1, &amp;Tab2);

	m_Dlg1-&gt;ShowWindow(SW_SHOW);
</code></pre>
<p>Doch wenn ich das Kompiliere bekomme ich eine Access Violation in der zeile:<br />
ASSERT(::IsWindow(m_hWnd)); //In der WINOCC.CPP</p>
<p>Meines Erachtens nach dürfte dass passieren, da ich die Dialoge noch nicht Created habe, vor dem ShowWindow.<br />
Also habe ich jetzt davor &quot;m_Dlg1-&gt;Create(IDD_DIALOG1, GetParent());&quot; gemacht.</p>
<p>Allerdings bekomme ich dann eine Acces Violation in der Zeile:<br />
m_lpszTemplateName = lpszTemplateName; //In DLGCORE.CPP</p>
<p>Kann mir erklären wie ich es hinbekomme, dass die Dialoge angezeigt werden können?</p>
<p>P.S.: Da ich annehme dass gleich wieder Leute kommen die sagen, dass ich CPropertySheet/CPropertyPage benutzen soll:<br />
Nach dem was ich bisher von CPropertySheet verstanden habe, ist dies für mich nicht geeignet(Ich brauche Buttons und<br />
Textfelder um mein TabCtrl herum), mal ganz abgesehen davon, dass ich das noch weniger verstehe wie den CTabCtrl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274420</guid><dc:creator><![CDATA[slide]]></dc:creator><pubDate>Fri, 27 Apr 2007 09:07:24 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 10:28:52 GMT]]></title><description><![CDATA[<p>slide schrieb:</p>
<blockquote>
<p>Hallo,<br />
ich will in einer MFC-Dialog-Anwendung ein TabCtrl verwenden.<br />
Ich habe mich etwas an diesem Forumsbeitrag orientiert: <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-162800.html" rel="nofollow">Beitrag</a></p>
<p>Damit alles Nachvollziehbar ist, fang ich ganz vorne an:<br />
Ich habe bisher ein neues Projekt erstellt (MFC-Dialog) und 2 Dialoge angelegt.<br />
(IDD_DIALOG1, IDD_DIALOG2)</p>
<p>Nun habe ich im OnInitDialog() meines Hauptdialoges (CTestDlg dlg) folgendes eingefügt:</p>
<pre><code class="language-cpp">CTabCtrl* m_Tabs;
	m_Tabs = ( CTabCtrl* ) GetDlgItem( IDC_TAB1 );
	
	CDialog* m_Dlg1 = ( CDialog* ) GetDlgItem( IDD_DIALOG1 );
	CDialog* m_Dlg2 = ( CDialog* ) GetDlgItem( IDD_DIALOG2 );
	
	TCITEM  Tab1;
    Tab1.mask    = TCIF_TEXT | TCIF_PARAM;
    Tab1.pszText = (LPTSTR)(LPCTSTR)&quot;Overview&quot;;
    Tab1.lParam  = (LPARAM)m_Dlg1;

	TCITEM  Tab2;
    Tab2.mask    = TCIF_TEXT | TCIF_PARAM;
    Tab2.pszText = (LPTSTR)(LPCTSTR)&quot;Statistic&quot;;
    Tab2.lParam  = (LPARAM)m_Dlg2;

    m_Tabs-&gt;InsertItem(0, &amp;Tab1);
    m_Tabs-&gt;InsertItem(1, &amp;Tab2);

	m_Dlg1-&gt;ShowWindow(SW_SHOW);
</code></pre>
<p>Doch wenn ich das Kompiliere bekomme ich eine Access Violation in der zeile:<br />
ASSERT(::IsWindow(m_hWnd)); //In der WINOCC.CPP</p>
<p>Meines Erachtens nach dürfte dass passieren, da ich die Dialoge noch nicht Created habe, vor dem ShowWindow.<br />
Also habe ich jetzt davor &quot;m_Dlg1-&gt;Create(IDD_DIALOG1, GetParent());&quot; gemacht.</p>
<p>Allerdings bekomme ich dann eine Acces Violation in der Zeile:<br />
m_lpszTemplateName = lpszTemplateName; //In DLGCORE.CPP</p>
<p>Kann mir erklären wie ich es hinbekomme, dass die Dialoge angezeigt werden können?</p>
</blockquote>
<p>Das geht so nicht, Du musst die Controls für die einzelnen Karteikarten des TabCtrls auf das Tabctrl legen und das ggfs. übereinander und beim Umschalten der Karteikarten halt die Ctrls einblennden, die zu dieser Karteikarte gehören undn die anderen alle ausblenden. Das ist ja mit einer der Gründe, warum immer von der Benutzung des TabCtrls abgeraten wird. Tipp: kopiere die Ctrls aus den beiden Dialogen auf das TabCtrl. Wenn Du Änderungen daran machen musst, löschst Du die Ctrls auf dem TabCtrl alle, änderst in den beiden Dialogen und kopierst anschliessend die Ctrls beider Dialoge wieder auf das TabCtrl.</p>
<blockquote>
<p>P.S.: Da ich annehme dass gleich wieder Leute kommen die sagen, dass ich CPropertySheet/CPropertyPage benutzen soll:</p>
</blockquote>
<p>Natürlich!! Ich gehöre auch zu den Verfechtern von CPropertySheet/Page 8-P!!</p>
<blockquote>
<p>Nach dem was ich bisher von CPropertySheet verstanden habe, ist dies für mich nicht geeignet(Ich brauche Buttons und<br />
Textfelder um mein TabCtrl herum), mal ganz abgesehen davon, dass ich das noch weniger verstehe wie den CTabCtrl.</p>
</blockquote>
<p>Das was Du machen willst, geht auch. Habe ich auch schon gemacht. Irgendwo hier im Forum habe ich die prinzipielle Vorgehensweise zum Einbetten eines CPropertySheets in einen Dialog mal beschrieben. Ist aber auch nachzulesen in &quot;The MFC Answer Book&quot; aus dem Addison-Wesley Verlag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274477</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 27 Apr 2007 10:28:52 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 10:42:04 GMT]]></title><description><![CDATA[<p>Devil81 hatte doch mal ne schöne Anleitung und h/cpp hier im Forum<br />
gepostet.</p>
<p>Gibt's Devil81 überhaupt noch? Ich nutze zumindest seine TabCtrl-Klasse<br />
noch immer mit Erfolg <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/1274481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274481</guid><dc:creator><![CDATA[Dito]]></dc:creator><pubDate>Fri, 27 Apr 2007 10:42:04 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 11:30:11 GMT]]></title><description><![CDATA[<p>Ich möchte auch noch mal darauf hinweisen, dass es weitaus einfacher ist die fertigen CPropertySheet und CPropertyPage Klassen zu verwenden, asls sich alls mit einem Dialog und einem CTabCtrl zusammmen zu basteln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274518</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 27 Apr 2007 11:30:11 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 11:44:24 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Ich möchte auch noch mal darauf hinweisen, dass es weitaus einfacher ist die fertigen CPropertySheet und CPropertyPage Klassen zu verwenden, asls sich alls mit einem Dialog und einem CTabCtrl zusammmen zu basteln.</p>
</blockquote>
<p>*g* <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Hatten wir dazu nicht noch im Forum eine Anleitung wie das in einen Dialog<br />
eingebttet wird? Hmm...finde aber auf die Schnelle in der Suche so auch nix...<br />
Schade, wäre sicher interessant gewesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274536</guid><dc:creator><![CDATA[Dito]]></dc:creator><pubDate>Fri, 27 Apr 2007 11:44:24 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 11:49:22 GMT]]></title><description><![CDATA[<p>Es ist wahrscheinlich zu einfach <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<pre><code class="language-cpp">// CPage1 etc. werden wir Dialoge behandelt und angelegt.
// Danach einfach die Basisklasse auf CProprtyPage ändern.

class CPage1 : public CPropertyPage
{
...
};

class CPage2 : public CPropertyPage
{
...
};

...
CPage1 page1;
CPage2 page2;
...
CPrpertySheet sheet;
sheet.AddPage(&amp;page1);
sheet.AddPage(&amp;page2);
</code></pre>
<p>Evtl. kann das der Wizard auch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274540</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 27 Apr 2007 11:49:22 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 12:05:53 GMT]]></title><description><![CDATA[<p>Martin deine Lösung erzeugt doch aber einen neuen Dialog der<br />
als selbständiges Fenster erscheint, oder?</p>
<p>Was er aber will ist die Einbettung in einen bestehenden Dialog soweit ich<br />
das verstehe.</p>
<p>Vielleicht hilft dann noch der Link:</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-171485-and-highlight-is-ctabctrl.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-171485-and-highlight-is-ctabctrl.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1274561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274561</guid><dc:creator><![CDATA[Dito]]></dc:creator><pubDate>Fri, 27 Apr 2007 12:05:53 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 12:59:18 GMT]]></title><description><![CDATA[<p>Lese ich nicht so:</p>
<blockquote>
<p>MFC-Dialog-Anwendung ein TabCtrl verwenden.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1274603</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274603</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 27 Apr 2007 12:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Fri, 27 Apr 2007 13:29:32 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Lese ich nicht so:</p>
<blockquote>
<p>MFC-Dialog-Anwendung ein TabCtrl verwenden.</p>
</blockquote>
</blockquote>
<p>Sorry, das ich wage, Dir zu widersprechen <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="😉"
    /> , aber:</p>
<blockquote>
<p>P.S.: Da ich annehme dass gleich wieder Leute kommen die sagen, dass ich CPropertySheet/CPropertyPage benutzen soll:<br />
Nach dem was ich bisher von CPropertySheet verstanden habe, ist dies für mich nicht geeignet(Ich brauche Buttons und<br />
Textfelder um mein TabCtrl herum), mal ganz abgesehen davon, dass ich das noch weniger verstehe wie den CTabCtrl.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1274642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1274642</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 27 Apr 2007 13:29:32 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Sun, 29 Apr 2007 12:51:52 GMT]]></title><description><![CDATA[<p>Jencas und Dito haben recht. Ich möchte es in einen bestehenden Dialog einbinden, so dass ein paar Elemente (4 Buttons und ein textfeld) immer angezeigt werden. Egal auf welchem Tab man gerade ist.</p>
<p>So wie es Martin geschrieben hat, hört es sich recht leicht an. Aber wie binde ich den CPropertySheet in einen Dialog ein? Oder wird der einfach darübergelegt?</p>
<p>Muss man um den CPropertySheet zu sehen noch ein Objekt davon erstellen und ein ShowWindow oder so machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1275641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1275641</guid><dc:creator><![CDATA[slide]]></dc:creator><pubDate>Sun, 29 Apr 2007 12:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to CTabCtrl - Tabs mit Dialogen - Probleme mit Showwindow on Mon, 30 Apr 2007 06:25:32 GMT]]></title><description><![CDATA[<p>CPropertySheet muss mit DoModal aufegrufen werden. Es erzeugt einen eigenen Dialog. Du kannst Dir überlegen außerhalb des TabControls selbst noch andere Controls anzulegen. Schau Dir mal mit Dem Spy++ die Konstruktion an wenn Du CPropertySheet::DoModal aufgerufen hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1276030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1276030</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 30 Apr 2007 06:25:32 GMT</pubDate></item></channel></rss>