<?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[Tab Control wird nicht angezeigt (?)]]></title><description><![CDATA[<p>Guten Abend erstmal,</p>
<p>ich habe mir mit Visual C++ .NET 2003 (Natives Win32-Projekt) ein Programm vom Typ &quot;Windowsanwendung&quot; (kein leeres Projekt) erstellt und im switch-case Block der WndProc folgenden Code unter WM_CREATE eingefügt:</p>
<pre><code class="language-cpp">switch (wmId)
{
case WM_CREATE:
      hTab = CreateWindowEx(0, WC_TABCONTROL, &quot;&quot;, 
      WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_CLIPSIBLINGS|
      TCS_FOCUSNEVER|TCS_SINGLELINE, 0, 0, 100, 100, hWnd, (HMENU)IDC_TAB, 
      0, NULL);

     TCITEM item;
     ZeroMemory(&amp;item, sizeof(item));
     item.mask    = TCIF_TEXT;       
     item.pszText = TEXT(&quot;Dialog 1&quot;);

     TabCtrl_InsertItem(hTab, 0, &amp;item);
     break;
case IDM_\1:
     //Blablabla
</code></pre>
<p>Ich versuche also auf die WM_CREATE Nachricht hin ein Tab-Control zu erstellen, was leider nicht funktioniert.</p>
<p>Erstens wird WM_CREATE erst gar nicht als Nachricht empfangen. Und selbst wenn ich den Code für die Erstellung des Tab-Controls in meiner &quot;WinMain&quot; Funktion nach InitInstance (also der Erstellung des Fensters) einfüge, so funktioniert das leider auch nicht, bzw:<br />
Die Anwendung läst sich einwandfrei starten, nur das Tab-Control ist nicht sichtbar ? Woran kann das liegen ? (&lt;- natürlich an mir, das weiß ich auch, aber was mache ich falsch ? <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>Greetings, Xzi-bit</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200569/tab-control-wird-nicht-angezeigt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 13:04:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200569.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Dec 2007 20:09:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Sun, 16 Dec 2007 20:09:55 GMT]]></title><description><![CDATA[<p>Guten Abend erstmal,</p>
<p>ich habe mir mit Visual C++ .NET 2003 (Natives Win32-Projekt) ein Programm vom Typ &quot;Windowsanwendung&quot; (kein leeres Projekt) erstellt und im switch-case Block der WndProc folgenden Code unter WM_CREATE eingefügt:</p>
<pre><code class="language-cpp">switch (wmId)
{
case WM_CREATE:
      hTab = CreateWindowEx(0, WC_TABCONTROL, &quot;&quot;, 
      WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_CLIPSIBLINGS|
      TCS_FOCUSNEVER|TCS_SINGLELINE, 0, 0, 100, 100, hWnd, (HMENU)IDC_TAB, 
      0, NULL);

     TCITEM item;
     ZeroMemory(&amp;item, sizeof(item));
     item.mask    = TCIF_TEXT;       
     item.pszText = TEXT(&quot;Dialog 1&quot;);

     TabCtrl_InsertItem(hTab, 0, &amp;item);
     break;
case IDM_\1:
     //Blablabla
</code></pre>
<p>Ich versuche also auf die WM_CREATE Nachricht hin ein Tab-Control zu erstellen, was leider nicht funktioniert.</p>
<p>Erstens wird WM_CREATE erst gar nicht als Nachricht empfangen. Und selbst wenn ich den Code für die Erstellung des Tab-Controls in meiner &quot;WinMain&quot; Funktion nach InitInstance (also der Erstellung des Fensters) einfüge, so funktioniert das leider auch nicht, bzw:<br />
Die Anwendung läst sich einwandfrei starten, nur das Tab-Control ist nicht sichtbar ? Woran kann das liegen ? (&lt;- natürlich an mir, das weiß ich auch, aber was mache ich falsch ? <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>Greetings, Xzi-bit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1421622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421622</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 16 Dec 2007 20:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Tue, 18 Dec 2007 14:04:28 GMT]]></title><description><![CDATA[<p>Diesen Beitrag hat es nie gegeben. <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="😮"
    /><br />
Okay ich korrigiere mich mein eigentlicher Vorschlag war es direkt nach dem ersten CreateWindow oder InitDialog oder was auch immer den Code zu platzieren und nicht in die WindowProcedure. Mit dem PostMessage sollte Xzi-bit nur feststellen ob der Fehler an der Bedingung liegt oder an dem Code der im WM_CREATE Block drinne ist. Entschuldigung so war es gemeint. Ihr habt das total falsch interpretiert. Wenn der Fehler am Code nach WM_CREATE gelegen hätte,dann hätte Xzi-bit soetwas wie &quot;Ja jetzt kommt der Tabcontrol, wird aber nicht richtig angezeigt&quot; geschrieben.</p>
<p>Es tut mir Leid, dass ich so unverständlich geschrieben habe.</p>
<p><sup><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@CodeFinder</a>:</sup><br />
Du hättest das aber eigentlich wissen können.</p>
<p>^@Martin Richter:^<br />
Doch wie du siehst um herauszufinden ob er einen anderen Fehler gemacht hat.<br />
Ausserdem versendet man intere Windows-Nachrichten um ein anderes Programm zu manipulieren(Malware) <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1421627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421627</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Tue, 18 Dec 2007 14:04:28 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Sun, 16 Dec 2007 21:09:22 GMT]]></title><description><![CDATA[<p>C-Chris schrieb:</p>
<blockquote>
<p>Schreibe knapp vor der MAIN MESSAGE LOOP:</p>
<pre><code class="language-cpp">PostMessage(DeinHandle,WM_CREATE,NULL,NULL); //oder so ähnlich vielleicht noch mit Instanz
while //MAIN MESSAGE LOOP
</code></pre>
<p>Dann müsste es funktionieren ich denke nicht das eine WM_CREATE Message zur richtigen Zeit freigesetzt wurde. Nochwas ist <strong>HWND hTab</strong> global oder wurde es in <strong>WinMain</strong> deklariert wenn ja dann musst du es in <strong>WndProc</strong> übergeben lassen:<br />
Achtung beim Prototyp und bei der Definition.</p>
</blockquote>
<p>Sorry, aber das ist totaler Schwachsinn.</p>
<p>@Xzibit:<br />
1. 'hTab' sollte, wenn nicht global, statisch definiert sein (statisch ist auf jeden Fall zu bevorzugen), das sollte Dein Problem allerdings noch *nicht* lösen<br />
2. Was ist <code>wmId</code> ? Hoffe Dir ist klar, dass das der 2. Parameter der DlgProc/WndProc sein muss (vergleiche, Dialog-Prozedur: <code>INT_PTR CALLBACK DlgProc(HWND hDlg, UINT uiMsg, WPARAM wParam, LPARAM lParam)</code> ).<br />
3. Erstellst Du ein Dialog oder ein Fenster? Bei einem Dialog gibt es kein 'WM_CREATE' sondern WM_INITDIALOG!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1421650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421650</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 16 Dec 2007 21:09:22 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Tue, 18 Dec 2007 14:06:36 GMT]]></title><description><![CDATA[<p>Diesen Beitrag hat es auch nie gegeben.<br />
Achso habe nicht gescheid gelesen. Sorry.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1421663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421663</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Tue, 18 Dec 2007 14:06:36 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Sun, 16 Dec 2007 21:36:13 GMT]]></title><description><![CDATA[<p>C-Chris schrieb:</p>
<blockquote>
<p>Frage: Was meinst du mit Dialog wieso sollte eine Tabcontrol ein Dialog sein? Verstehe ich nicht.</p>
</blockquote>
<p>Es geht darum, ob sein Parent-Fenster ein Dialog ist (-&gt; CreateDialog, DialogBox, ...) oder ein Fenster (-&gt; CreateWindow, ...).</p>
<p>PS, @Xzibit: Dein 'IDM_ABOUT' sieht dort auch falsch plaziert aus. Kann es sein, dass auch das WM_CREATE unter dem WM_COMMAND-Handler steht? Das wäre falsch <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1421676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421676</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 16 Dec 2007 21:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Sun, 16 Dec 2007 22:32:50 GMT]]></title><description><![CDATA[<p>Oh mein Gott, oh mein Gooooooott!!!</p>
<p>Sry CodeFinder, sry C-Chris.<br />
Jaaaaaaa, du hast Recht CodeFinder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Bin ich dumm... vor lauter Hektik in der Zeile verrutscht. <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="😉"
    /><br />
Das nächste Mal hol ich mir besser einen Holzhammer bevor ich so einen Bullsh** ins Forum poste. Die WM_CREATE steht im Einzugsbereich der WM_COMMAND.<br />
Was will man etz dazu noch groß sagen ? ... ^^ :xmas2:</p>
<p>Also die Message bekomme ich jetzt. Das Tab-Control erscheint trotzdem nicht, da ich das ja schon mal in der WinMain ausprobiert hab.<br />
Und ja ich habe eine globale hWnd deklariert. In der InitInstance() (so heißt die Funktion, die in der WinMain aufgerufen wird) wird ein Fenster über CreateWindow() erzeugt. Den Rückgabewert von CreateWindow (HWND) speichere ich dann direkt innerhalb der InitInstance() in dieser globalen hWnd ab.</p>
<p>Wahrscheinlich hab ich hier nämlich auch wieder nur irgendeinen Schmarrn zamgewurschtelt. Aber den Code habt ihr ja ^^ Das ist übrigens der Einzige Codeteil, den ich eingefügt habe neben der globalen hWnd. Also wenn dann muss es daran liegen. Aber nach der letzten Aktion bin ich mir da auch nicht mehr ganz so sicher hehe ...:P</p>
<p>Greetings, Xzi-bit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1421709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421709</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 16 Dec 2007 22:32:50 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Mon, 17 Dec 2007 00:54:09 GMT]]></title><description><![CDATA[<p>Hast Du <a href="http://msdn2.microsoft.com/en-us/library/bb775695.aspx" rel="nofollow">InitCommonControls</a> oder <a href="http://msdn2.microsoft.com/en-us/library/bb775697.aspx" rel="nofollow">InitCommonControlsEx</a> aufgerufen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1421744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421744</guid><dc:creator><![CDATA[Gästchen]]></dc:creator><pubDate>Mon, 17 Dec 2007 00:54:09 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Mon, 17 Dec 2007 06:54:12 GMT]]></title><description><![CDATA[<p>Yeah, super, Gästchen !!</p>
<p>Es funktioniert. Wusste gar nicht, dass man die Funktion dazu braucht. Hab ich bis jetzt immer nur benutzt, wenn ich Steuerelemente im XP-Look haben wollte.<br />
Aber man lernt ja bekanntlich nie aus...</p>
<p>Ein großes Dankeschön an alle !! Ich hab ein Tab-Control Jieppieh <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /><br />
Und schon mal Frohe Weihnachten :xmas1:</p>
<p>Greetings, Xzi-bit</p>
<p>PS: Jungs, ihr seids da Hammer <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1421768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421768</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 17 Dec 2007 06:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Mon, 17 Dec 2007 08:00:06 GMT]]></title><description><![CDATA[<p>C-Chris schrieb:</p>
<blockquote>
<p>Schreibe knapp vor der MAIN MESSAGE LOOP:</p>
<pre><code class="language-cpp">PostMessage(DeinHandle,WM_CREATE,NULL,NULL); //oder so ähnlich vielleicht noch mit Instanz
while //MAIN MESSAGE LOOP
</code></pre>
</blockquote>
<p>Es ist ein Unsitte einfach mal eine interne Windows Nachricht, die Fenster als Benachrichtigung bekommen, selbst zu versenden.</p>
<p>Dies kann wie in diesem Beispiel bei WM_CREATE zu übelsten Effekten und Memory Leaks und abstürzen führen.</p>
<p>1. Fehler: Der lParam, der bei jedem WM_CREATE auf einen Zeiger der CREATESTRUCT<br />
2. Fehler: Würde das entsprechende Fenster auf die Nachricht WM_CREATE selber wieder Fenster erzeugen (was gängige Praxis ist), würden diese erneut erzeugt werden.</p>
<p>Ich frage mich, wie man auf solche Ideen kommt.<br />
Wenn eine Nachricht nicht ankommt, würde ich nach den Ursachen suchen und nicht einfach das falsche Programm durch einen noch fataleren Fehler irgendwie zum Laufen bringen.</p>
<p>Es gibt Nachrichten, die versendet Windows und die sind nicht dazu gedacht, dass man sie gerade mal selber versendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1421786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1421786</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 17 Dec 2007 08:00:06 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Tue, 18 Dec 2007 15:06:16 GMT]]></title><description><![CDATA[<p>Diesen Beitrag hat es nie gegeben. <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="😮"
    /><br />
Okay ich korrigiere mich mein eigentlicher Vorschlag war es direkt nach dem ersten CreateWindow oder InitDialog oder was auch immer den Code zu platzieren und nicht in die WindowProcedure. Mit dem PostMessage sollte Xzi-bit nur feststellen ob der Fehler an der Bedingung liegt oder an dem Code der im WM_CREATE Block drinne ist. Entschuldigung so war es gemeint. Ihr habt das total falsch interpretiert. Wenn der Fehler am Code nach WM_CREATE gelegen hätte,dann hätte Xzi-bit soetwas wie &quot;Ja jetzt kommt der Tabcontrol, wird aber nicht richtig angezeigt&quot; geschrieben.</p>
<p>Es tut mir Leid, dass ich so unverständlich geschrieben habe.</p>
<p><sup><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/12048">@CodeFinder</a>:</sup><br />
Du hättest das aber eigentlich wissen können.</p>
<p>^@Martin Richter:^<br />
Doch wie du siehst um herauszufinden ob er einen anderen Fehler gemacht hat.<br />
Ausserdem versendet man intere Windows-Nachrichten um ein anderes Programm zu manipulieren(Malware) <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1422653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422653</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Tue, 18 Dec 2007 15:06:16 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Tue, 18 Dec 2007 15:27:46 GMT]]></title><description><![CDATA[<p>Hallohallo :p</p>
<p>Es ist bald Weihnachten und ich möchte nicht, dass sich jetzt noch zwei wegen mir in die Haare kriegen.</p>
<p>Martin, du hast natürlich Recht. Sowas macht man nicht. Ich schätze aber C-Chris' Vorschlag sehr mit der PostMessage, da es in dem Fall zwar nur eine weitere Verwurschtelung wäre und mit sauberem Programmierstil nix mehr zu tun hätte, aber es würde schon mal viel weiter helfen, wenn man weiß, ob es am Code innerhalb der switch-case Nachricht oder an der nicht empfangenen WM_CREATE selbst liegt.</p>
<p>Somit habt ihr beide Recht. <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="😉"
    /><br />
Der Rest sind nur Kleinigkeiten... :xmas1:</p>
<p>Schon mal Frohe Weihnachten euch zwei falls ich vergessen sollte ^^</p>
<p>Greetings, Xzi-bit</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1422677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1422677</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 18 Dec 2007 15:27:46 GMT</pubDate></item><item><title><![CDATA[Reply to Tab Control wird nicht angezeigt (?) on Wed, 19 Dec 2007 16:34:25 GMT]]></title><description><![CDATA[<p>Xzibit schrieb:</p>
<blockquote>
<p>Hallohallo :p</p>
<p>Es ist bald Weihnachten und ich möchte nicht, dass sich jetzt noch zwei wegen mir in die Haare kriegen.</p>
<p>Martin, du hast natürlich Recht. Sowas macht man nicht. Ich schätze aber C-Chris' Vorschlag sehr mit der PostMessage, da es in dem Fall zwar nur eine weitere Verwurschtelung wäre und mit sauberem Programmierstil nix mehr zu tun hätte, aber es würde schon mal viel weiter helfen, wenn man weiß, ob es am Code innerhalb der switch-case Nachricht oder an der nicht empfangenen WM_CREATE selbst liegt.</p>
<p>Somit habt ihr beide Recht. <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="😉"
    /><br />
Der Rest sind nur Kleinigkeiten... :xmas1:</p>
<p>Schon mal Frohe Weihnachten euch zwei falls ich vergessen sollte ^^</p>
<p>Greetings, Xzi-bit</p>
</blockquote>
<p>Danke Xzi-bit. Dir auch frohe Weihnachten :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423168</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Wed, 19 Dec 2007 16:34:25 GMT</pubDate></item></channel></rss>