<?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[Ansicht des TabControlls?]]></title><description><![CDATA[<p>Hy,</p>
<p>Ich habe die Visual .NET Umgebung und Programmiere dort in C++ (MFC).<br />
Ein einfaches Tab Control einzufügen ist ja kein Problem, aber die Controls darauf zu legen ist eines.<br />
Zur Zeit lege ich alle Controls übereinander auf dieses Tab Control und lasse diese zur Laufzeit ein und aus blenden.<br />
Meine Frage ist jetzt ob ich im Ressourceneditor die Möglichkeit habe die Controls gescheit auf die einzelnen Tab´s zu legen.<br />
Denn wenn ich diese wie jetzt übereinander lege und ein/aus blenden lasse muss ich bei einer Änderung jedes control verschieben, neu anordnen und wieder zurück schieben.<br />
Es ist einfach zu umständlich so. For allem bei +50 Objekten.</p>
<p>MFG</p>
<p>ReneS</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/52645/ansicht-des-tabcontrolls</link><generator>RSS for Node</generator><lastBuildDate>Mon, 01 Jun 2026 02:37:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/52645.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Oct 2003 07:40:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ansicht des TabControlls? on Wed, 22 Oct 2003 07:40:28 GMT]]></title><description><![CDATA[<p>Hy,</p>
<p>Ich habe die Visual .NET Umgebung und Programmiere dort in C++ (MFC).<br />
Ein einfaches Tab Control einzufügen ist ja kein Problem, aber die Controls darauf zu legen ist eines.<br />
Zur Zeit lege ich alle Controls übereinander auf dieses Tab Control und lasse diese zur Laufzeit ein und aus blenden.<br />
Meine Frage ist jetzt ob ich im Ressourceneditor die Möglichkeit habe die Controls gescheit auf die einzelnen Tab´s zu legen.<br />
Denn wenn ich diese wie jetzt übereinander lege und ein/aus blenden lasse muss ich bei einer Änderung jedes control verschieben, neu anordnen und wieder zurück schieben.<br />
Es ist einfach zu umständlich so. For allem bei +50 Objekten.</p>
<p>MFG</p>
<p>ReneS</p>
]]></description><link>https://www.c-plusplus.net/forum/post/376972</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/376972</guid><dc:creator><![CDATA[ReneS]]></dc:creator><pubDate>Wed, 22 Oct 2003 07:40:28 GMT</pubDate></item><item><title><![CDATA[Reply to Ansicht des TabControlls? on Wed, 22 Oct 2003 11:09:23 GMT]]></title><description><![CDATA[<p>Hallo !</p>
<p>In den FAQ ist auch ein Beitrag dazu (&quot;Regestrierkarten&quot;).<br />
Ansonsten mache ich das immer so (mal kurz und knapp <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="😃"
    /> beschrieben, übrigens in VC 6.0, klappt ja vielleicht auch in .NET):<br />
- eine neue Klasse erzeugen, Basisklasse CPropertySheet (ich nenne sie mal CSheet)<br />
- einen neuen Dialog erzeugen<br />
- dem neuen Dialog eine Klasse zuweisen (hier nicht CDialog, sondern CPropertyPage, ich nenne die Klasse mal CPage1)<br />
- in der Headerdatei von CSheet die Header-Datei vom neuen Dialog inkludieren:<br />
#include &quot;Page1.h&quot;<br />
- in der Headerdatei von CSheet ein Objekt vom neuen Dialog anlegen:<br />
CPage1* Page1;<br />
- im Konstruktor von CSheet das Objekt von Page1 mit new erzeugen:<br />
Page1 = new CPage1;<br />
- im Destruktor das Objekt wieder löschen:<br />
delete Page1;<br />
- der Klasse CSheet die virtuelle Funktion &quot;Create(...)&quot; hinzufügen (Klick mit rechter Maustaste auf die Klasse -&gt; virtuelle Funktion hinzufügen -&gt; Create -&gt; Hinzufügen)<br />
- in der neuen Funktion &quot;Create&quot; das TabControl hinzufügen:<br />
AddPage(Page1);<br />
-&gt; Fertig. Jetzt fehlt nur noch der Aufruf von dem Sheet. Dazu erstelle ich mir einen Button auf den Startdialog meiner Anwendung (kann natürlich auch über ein Menü oder sonstwas aufgerufen werden) mit der dazugehörigen Funktion OnTabControl.<br />
- in der Headerdatei von dem Startdialog das Sheet einbinden:<br />
#include &quot;Sheet.h&quot;<br />
- in der Headerdatei von dem Startdialog ein Objekt von dem Sheet anlegen:<br />
CSheet* Sheet;<br />
- im Konstruktor von dem Startdialog ein Objekt von dem Sheet mit new erzeugen:<br />
Sheet = new CSheet(&quot;TabControl&quot;);<br />
- im Destruktor das Objekt wieder löschen:<br />
delete Sheet;<br />
- in der Funktion von dem angelegten Butten auf dem Startdialog Create aufrufen:<br />
Sheet.Create(this,(DWORD)-1,0);<br />
- in der Funktion von dem angelegten Butten auf dem Startdialog ShowWindow aufrufen:<br />
Sheet.ShowWindow(SW_SHOWNA);<br />
-&gt; Fertig -&gt; Kompilieren -&gt; Mist, Fehler: Create akzeptiert keine 3 Parameter -&gt; mal nachsehen -&gt; er hat irgendwie Create von CWnd angelegt, statt von CPropertySheet...<br />
Also:<br />
- im Header von CSheet die Zeile<br />
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT&amp; rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);<br />
ersetzen durch<br />
virtual BOOL Create(CWnd* pParentWnd, DWORD dwStyle, DWORD dwExStyle);<br />
- in der cpp den entsprechenden Aufruf<br />
BOOL CSheet::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT&amp; rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)<br />
ersetzen durch<br />
BOOL CSheet::Create(CWnd* pParentWnd, DWORD dwStyle, DWORD dwExStyle)<br />
- den Rückgabewert von<br />
return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);<br />
ändern in<br />
return CPropertySheet::Create(pParentWnd, dwStyle, dwExStyle);<br />
-&gt; Fertig und klappt:<br />
Page1 wird als Kareireiter angezeigt. Für weitere Dialoge: neuen Dialog erzeugen, als CPropertyPage einbinden und im Sheet mit AddPage(...) aufrufen.<br />
So kann man die Steuerelemente auf einzelnen Dialogen anordnen und hat sie nicht übereinander.</p>
<p>Tschüss</p>
<p>[edit]<br />
Kleinere Abstürze <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> gibt es bei diesem Beispiel nur, wenn der Test-Button mehrmals hintereinander gedrückt wird. OK, dazu müssen die new und delete anders gesetzt werden, aber die grundlegende Funktionsweise von den Registrierkarten klappt schon.<br />
[/edit]</p>
<p>[edit 2]<br />
Die kleineren Abstürze verschwinden übrigens, wenn man AddPage(...) nicht in Create(...) aufruft, sondern im Konstruktor. Und daher wäre Create(...) hier wiederum überflüssig...</p>
<p>P.S.:<br />
Alter Schwede, habe ich eine teuflische Beitragszahl (Stand 22.09.2003) !<br />
[/edit 2]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/377018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/377018</guid><dc:creator><![CDATA[isabeau]]></dc:creator><pubDate>Wed, 22 Oct 2003 11:09:23 GMT</pubDate></item><item><title><![CDATA[Reply to Ansicht des TabControlls? on Wed, 22 Oct 2003 09:17:31 GMT]]></title><description><![CDATA[<p>es gibt zwei Möglichkeiten: entweder Property Sheet oder man leitet von CTabCtrl eine Klasse ab und erstellt die Dialoge als Child-Fenster, ohne Rahmen. Bei WM_LBUTTONDOWN mit CTabCtrl::GetCurSel den seleketierten Tab abfragen und ggf. ausblenden lassen. Falls du Interesse hast, kann ich dir ein Beispiel schicken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/377022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/377022</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Wed, 22 Oct 2003 09:17:31 GMT</pubDate></item><item><title><![CDATA[Reply to Ansicht des TabControlls? on Wed, 22 Oct 2003 09:50:11 GMT]]></title><description><![CDATA[<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/377055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/377055</guid><dc:creator><![CDATA[ReneS]]></dc:creator><pubDate>Wed, 22 Oct 2003 09:50:11 GMT</pubDate></item></channel></rss>