<?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[Fenster mit WS_POPUP style maximieren]]></title><description><![CDATA[<p>Hi<br />
ich habe da ein kleines Problem. Ich erstelle ein neues Fenster mit dem Style WS_POPUP ohne Rahmen, Titelleiste etc da ich diese Teile selber nachbilde. Füre ich ein ShowWindow(hWnd,SW_MAXIMIZE) aus, wird zwar das Fenstermaximiert, allerdings bildschirmfülled. Soll heissen, das auch die Taskbar unten verdeckt wird, was ja nicht der Sinn sein soll.<br />
Irgendwer eine Idee wie ich das Fenster per Programmablauf so maximieren kann, dass die Taskleiste nicht verdeckt wird?</p>
<p>mfg Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/151292/fenster-mit-ws_popup-style-maximieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Jul 2026 22:02:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/151292.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 24 Jun 2006 18:16:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sat, 24 Jun 2006 18:16:51 GMT]]></title><description><![CDATA[<p>Hi<br />
ich habe da ein kleines Problem. Ich erstelle ein neues Fenster mit dem Style WS_POPUP ohne Rahmen, Titelleiste etc da ich diese Teile selber nachbilde. Füre ich ein ShowWindow(hWnd,SW_MAXIMIZE) aus, wird zwar das Fenstermaximiert, allerdings bildschirmfülled. Soll heissen, das auch die Taskbar unten verdeckt wird, was ja nicht der Sinn sein soll.<br />
Irgendwer eine Idee wie ich das Fenster per Programmablauf so maximieren kann, dass die Taskleiste nicht verdeckt wird?</p>
<p>mfg Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1084727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084727</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sat, 24 Jun 2006 18:16:51 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sat, 24 Jun 2006 18:54:53 GMT]]></title><description><![CDATA[<p>Hmm mal WM_SYSCOMMAND versucht (mit wParam = SC_MAXIMIZE) ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1084757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084757</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 24 Jun 2006 18:54:53 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sat, 24 Jun 2006 19:18:15 GMT]]></title><description><![CDATA[<p>Jepp. ist das gleiche. Das Fesntergröße wird auf die aktuelle Bildschirmauflösung gesetzt, was zur Folge hat, dass entweder die Taskleiste verdeckt wird, oder ein nicht sichtbarar Bereich hinter ihr verbleibt. Ich könnte auch die aktuelle Bildschirmauflösung selber abfragen um dann die Größe des Fenster manuell zu sezten, allerdings habe ich keine Idee, wie ich rausfinden kann, wie grad die Taskleiste im Moment ist um die korrekte Fenstergröße zu errechnen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1084767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084767</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sat, 24 Jun 2006 19:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sat, 24 Jun 2006 21:44:08 GMT]]></title><description><![CDATA[<blockquote>
<p>wie grad die Taskleiste im Moment ist um die korrekte Fenstergröße zu errechnen.</p>
</blockquote>
<p>Mit SystemParametersInfo(...) und SPI_GETWORKAREA <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/1084809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084809</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 24 Jun 2006 21:44:08 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sun, 25 Jun 2006 07:43:05 GMT]]></title><description><![CDATA[<p>Ok. Die Größe kann ich mittlerweile in Erfahrung bringen auch wenn ich nen anderen Weg gewählt habe:</p>
<pre><code class="language-cpp">GetWindowRect(FindWindow(&quot;Shell_traywnd&quot;,&quot;&quot;),&amp;REC);
</code></pre>
<p>Allerdings bleibt ein Problem. Ändert der User die Größe der Taskleiste, so kriegt dies mein Programm nicht mit, und bleibt logischerweise auf seiner Position. Ein Blick hinter die Kulissen mit Spy++ veriet mir, dass das Fenster wirklich keine Nachricht bekommt, wennn die Taskleiste vergrößert wird. Folglich muss ich das Fenster in die Obhut von Windows geben. Bei standardfenster verhält es sich ja auch korrekt. Aber leider habe ich keine Idee, wie das zu bewerkstelligen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1084895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084895</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sun, 25 Jun 2006 07:43:05 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sun, 25 Jun 2006 09:32:30 GMT]]></title><description><![CDATA[<p>Ok. Falls es jemand intressiert. Der Windows-Style WS_SYSMENU führt zum gewünschtem Ergebnis. Ist dieser gesetzt, wird die Fenstergröße und bei Bedarf die Position (wenn die Taskleiste z.b. nach oben verschoben wird) automatisch angepasst. Das einzige Problem was ich jetzt nur noch habe, ist der Ausgangszustand.<br />
Maximiere ich das Fenster z.b. über</p>
<pre><code class="language-cpp">ShowWindow(hWnd,SW_MAXIMIZE);
</code></pre>
<p>Wird es dennoch auf die volle Bildschirmgröße gesetzt. Erst wenn ich dann Änderungen an der Taskleiste vornheme wird die Größe meines Fensters angepasst. Die Höhe selber setzten kann ich vergessen, da dann das Fenster nicht mehr den maximierten Status hat, und die ganze Gescichte drum herum nicht mehr funktioniert. Irgendjemand diesbezüglich noch eine Idee? <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>
<p>Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1084938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1084938</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sun, 25 Jun 2006 09:32:30 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sun, 25 Jun 2006 13:21:46 GMT]]></title><description><![CDATA[<p>sgergen schrieb:</p>
<blockquote>
<p>Erst wenn ich dann Änderungen an der Taskleiste vornehme wird die Größe meines Fensters angepasst.</p>
</blockquote>
<p>Ne, das ist bei mir nicht so. Die Taskleite rückt nur in den Vordergrund. Bei einem Klick auf den zum Fenster gehörenden Button in der Taskleiste rückt das Fenster wieder in den Vordergrund und verdeckt die Taskleiste.</p>
<pre><code>LONG style, ex_style;

   // Create Application Window
   style = WS_VISIBLE|WS_POPUP|WS_MAXIMIZE|WS_SYSMENU;
   ex_style = 0;
   g_hAppWindow = CreateWindowEx(ex_style, g_lpszAppClass, g_lpszAppTitle, style,
                                 100, 100, 300, 400,
                                 NULL, NULL, g_hInstance, NULL);
   HWND hwnd = FindWindow(&quot;Shell_traywnd&quot;,&quot;&quot;);
   SetWindowPos(hwnd, NULL, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1085114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085114</guid><dc:creator><![CDATA[WebFritzi]]></dc:creator><pubDate>Sun, 25 Jun 2006 13:21:46 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sun, 25 Jun 2006 14:02:12 GMT]]></title><description><![CDATA[<p>Hm. Habe mir das jetzt nochmal genauer angeschaut und musste feststellen dass das Ergebnis immer zufällig ist. Manchmal wird die Fenstergröße korrekt angepasst, manchmal nicht. Vergrößere ich die Taskleiste bleibt das Fenster meistens auf seiner ursprünglichen Größe. Verkleinere ich es, so passt es nur manchmal. In den anderen Fälle ist es ca 25 pixel, was in etwa die Höhe der einfache Taskleiste ist, zu groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085153</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sun, 25 Jun 2006 14:02:12 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sun, 25 Jun 2006 18:24:04 GMT]]></title><description><![CDATA[<p>Vllt irg welche Rundungsfehler beim Koordinaten berechnen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085335</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sun, 25 Jun 2006 18:24:04 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster mit WS_POPUP style maximieren on Sun, 25 Jun 2006 18:46:01 GMT]]></title><description><![CDATA[<p>Ich berechne ja gar nichts. Mir geht es um die Grundfunktionalität die Windows zur Verfügung stellt. Erstelle ich ein WS_OVERLAPPED Window funktioniert das ganze perfekt. Die Größe wird auf den maximal darstellbaren Bereich angepasst.<br />
Nun habe ich ein Fenster ohne Titelleiste und Rahmen (WS_POPUP), denn man will ja auch mal was schickeres produzieren <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="🙂"
    /><br />
Tja, und hier funktioniert das ganze irgendwie nicht mehr. Das Fesnter wird zwar in seiner Größe geändert, allerdings werde ich das Gefühl nicht los, dass er die Größe der nicht vorhandenen Titelleiste und des Rahmens bei der neuen Größe zusätzlich addiert. Dieses Problem will ich irgendwie lösen, da ein noch so schickes Design nichts nützt, wenn es funktioneller Schrott ist <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>Die einzige Möglichkeit die mir einfallen würde, wäre das Fenster wenn es maximiert werden soll, manuell auf die von mir berechnete theoretische Größe zu setzten, was dann allerdings wieder einen Hook auf die WndProc der Taskleiste erfordert, da ich die Größenänderung dieser irgendwie mitbekommen muss. Und genau das will ich nur sehr ungern machen, da die Fehleranfälligkeit wie ich finde doch recht hoch ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1085360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1085360</guid><dc:creator><![CDATA[sgergen]]></dc:creator><pubDate>Sun, 25 Jun 2006 18:46:01 GMT</pubDate></item></channel></rss>