<?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[Welcher Message Handler um Buttons zu verschieben vor DoModal() ?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen Dialog, den ich mit DoModal() anzeige.<br />
Bevor dieser angezeigt wird, möchte ich aber die Buttons mit SetWindowPos() an die richtige Position verschieben und mit ModifyStyle() ein- oder ausblenden.<br />
Das muss nicht nur einmal passieren, sondern abhängig vom aktuellen Zustand einer Variablen, also schlimmstenfalls werden die Buttons vor jedem DoModal() geändert.</p>
<p>Nun habe ich diese Befehle in OnCreate() reingepackt.<br />
Er springt dann allerdings mit einem Assertion-Fehler in die folgende Zeile der SetWindowPos() in der winocc.cpp:</p>
<pre><code class="language-cpp">ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
</code></pre>
<p>Vermutlich sind die Buttons zum Zeitpunkt wenn die OnCreate() aufgerufen wird noch nicht richtig erzeugt. Es handelt sich übrigens um von CButton abgeleitete Custom-Controls, falls das von Bedeutung ist.</p>
<p>Welche On...()-Methode muss ich denn stattdessen verwenden, damit die Buttons schon erzeugt sind aber bevor der Dialog angezeigt wird?</p>
<p>Danke für eure Hilfe <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>DaOne</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182877/welcher-message-handler-um-buttons-zu-verschieben-vor-domodal</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 10:29:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182877.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 May 2007 10:22:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Welcher Message Handler um Buttons zu verschieben vor DoModal() ? on Wed, 30 May 2007 10:22:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe einen Dialog, den ich mit DoModal() anzeige.<br />
Bevor dieser angezeigt wird, möchte ich aber die Buttons mit SetWindowPos() an die richtige Position verschieben und mit ModifyStyle() ein- oder ausblenden.<br />
Das muss nicht nur einmal passieren, sondern abhängig vom aktuellen Zustand einer Variablen, also schlimmstenfalls werden die Buttons vor jedem DoModal() geändert.</p>
<p>Nun habe ich diese Befehle in OnCreate() reingepackt.<br />
Er springt dann allerdings mit einem Assertion-Fehler in die folgende Zeile der SetWindowPos() in der winocc.cpp:</p>
<pre><code class="language-cpp">ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));
</code></pre>
<p>Vermutlich sind die Buttons zum Zeitpunkt wenn die OnCreate() aufgerufen wird noch nicht richtig erzeugt. Es handelt sich übrigens um von CButton abgeleitete Custom-Controls, falls das von Bedeutung ist.</p>
<p>Welche On...()-Methode muss ich denn stattdessen verwenden, damit die Buttons schon erzeugt sind aber bevor der Dialog angezeigt wird?</p>
<p>Danke für eure Hilfe <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>DaOne</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295041</guid><dc:creator><![CDATA[DaOne]]></dc:creator><pubDate>Wed, 30 May 2007 10:22:58 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Message Handler um Buttons zu verschieben vor DoModal() ? on Wed, 30 May 2007 10:51:31 GMT]]></title><description><![CDATA[<p>OnInitDialog nach Aufruf der Basisklasse. <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/1295051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295051</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Wed, 30 May 2007 10:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Message Handler um Buttons zu verschieben vor DoModal() ? on Wed, 30 May 2007 13:39:13 GMT]]></title><description><![CDATA[<p>Und wenn Du ON_UPDATE_COMMAND_UI in einem CDialog benutzen willst, um z.B. Buttons mittels des Inhalts von Membervariablen zu en-/disablen, dann siehe<br />
<a href="http://www.codeguru.com/cpp/w-d/dislog/commandui/article.php/c1919/" rel="nofollow">http://www.codeguru.com/cpp/w-d/dislog/commandui/article.php/c1919/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295228</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Wed, 30 May 2007 13:39:13 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Message Handler um Buttons zu verschieben vor DoModal() ? on Wed, 30 May 2007 14:47:28 GMT]]></title><description><![CDATA[<p>Danke für eure Antworten, die OnInitDialog() war es auch schon.</p>
<p>Da hätte ich auch selber drauf kommen können, ich hatte die Methode bereits im Code drin. Nur irgendwie war mir nicht ganz klar, wie sich das DoModal() verhält. Darum dachte ich, OnInitDialog() wird nur einmal aufgerufen, beim ersten Anzeigen des Dialogs. Aber er wird ja jedesmal wieder neu erzeugt.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1295287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1295287</guid><dc:creator><![CDATA[DaOne]]></dc:creator><pubDate>Wed, 30 May 2007 14:47:28 GMT</pubDate></item></channel></rss>