<?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[MessageBox Hintergrundfarbe ändern?]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>hat jemand vielleicht 'ne Ahnung, wie ich die Farbe von einer MessageBox ändern kann?<br />
Mit folgendem Code klappt es leider nicht:</p>
<pre><code class="language-cpp">HBRUSH CSECalibToolDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
  HBRUSH hbrYellowColor = CreateSolidBrush(RGB(248,204,31)); 

  if( nCtlColor == CTLCOLOR_MSGBOX )
  {
    return hbrYellowColor;
  }

}
</code></pre>
<p>MfG<br />
Daniel Just</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/169717/messagebox-hintergrundfarbe-ändern</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 21:37:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169717.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 08 Jan 2007 10:02:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 10:02:20 GMT]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>hat jemand vielleicht 'ne Ahnung, wie ich die Farbe von einer MessageBox ändern kann?<br />
Mit folgendem Code klappt es leider nicht:</p>
<pre><code class="language-cpp">HBRUSH CSECalibToolDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
  HBRUSH hbrYellowColor = CreateSolidBrush(RGB(248,204,31)); 

  if( nCtlColor == CTLCOLOR_MSGBOX )
  {
    return hbrYellowColor;
  }

}
</code></pre>
<p>MfG<br />
Daniel Just</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205506</guid><dc:creator><![CDATA[Daniellus]]></dc:creator><pubDate>Mon, 08 Jan 2007 10:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 10:05:28 GMT]]></title><description><![CDATA[<p>Kannst du auch mal dazusagen, was &quot;nicht klappt&quot;?</p>
<p>Mir fällt an diesem Code nur auf, daß jeder OnCtlColor-Aufruf (und davon kommen im Lauf des Programms etliche) einen neuen Brush erzeugt und zurückgibt - irgendwann sind deine GDI-Handles aufgebraucht und das Programm schmiert ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205510</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 08 Jan 2007 10:05:28 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 10:14:27 GMT]]></title><description><![CDATA[<p>Die Hintergrundfarbe ändert sich nicht!<br />
Die MessageBox bleibt grau und wird nicht zu diesem RGB-Wert!</p>
<p>Das Programm schmiert nicht ab, es läuft weiter..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205522</guid><dc:creator><![CDATA[Daniellus]]></dc:creator><pubDate>Mon, 08 Jan 2007 10:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 12:00:13 GMT]]></title><description><![CDATA[<p>Wird denn der handler an dieser Stelle überhaupt aufgerufen? Das würde mich doch sehr wundern!</p>
<p>WM_CTLCOLORMSGBOX ist ein Relikt aus 16bit Zeiten und wird in keiner der neuen Windows API mehr verwendet.</p>
<p>Dir muss auch klar sein dass es in dem Sinne WM_CTLCOLOR auch nicht gibt. Dies ist eine interne Nachricht der MFC, um auch hier einfach Rückwärtskompatibel zu bleiben und auch das Farbenhandling auf einen Handler zu beschränken.</p>
<p>Imho müsstest Du einen CBT Hook erzeugen der mitbekommt wenn die MsgBox aufpoppt. In diesem Hook einen Subclass durchführen und dann wie gewohnt aggieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205570</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 08 Jan 2007 12:00:13 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 12:14:53 GMT]]></title><description><![CDATA[<p>So wie ich das sehe wird die Nachricht an dieser Stelle gar nicht abgegeben. Innerhalb einer Dialigfeldklasse kannst du z.B. auf CTLCOLOR_DLG reagieren, um den ganzen Dialoghintergrund einzufärben. Messageboxen funktionieren nicht aus dem View heraus, die haben ihren eigenen Messagehandler.</p>
<p>Edit: Martin war mal wieder schneller. Außerdem solltest du das beherzigen, was CStoll gesagt hat. Nicht bei jedem Aufruf einen Brush erzeugen, das kommt in die Klammer rein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205577</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Mon, 08 Jan 2007 12:14:53 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 13:24:35 GMT]]></title><description><![CDATA[<p>mach aus der messagebox einen neuen dialog. dann klappts auch mit der einfärbung <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/1205630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205630</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 08 Jan 2007 13:24:35 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 13:36:03 GMT]]></title><description><![CDATA[<p>Erstmal, habe ich die Pinsel in die Klammern gepackt...ihr habt völlig recht!<br />
Hab ja noch welche ausserhalb gehabt.</p>
<p>Dann...folgender MSDN-Eintrag sagt doch aber aus, das es funktionieren müsste,<br />
oder verstehe ich da was falsch.</p>
<blockquote>
<p>CWnd::OnCtlColor<br />
This method is called by the framework when a child control is about to be drawn. Most controls send this message to their parent, usually a dialog box, to prepare the pDC for drawing the control using the correct colors.</p>
<pre><code class="language-cpp">afx_msg HBRUSH OnCtlColor( CDC* pDC, 
                           CWnd* pWnd, 
                           UINT nCtlColor );
</code></pre>
<p>Parameters<br />
pDC<br />
Contains a pointer to the display context for the child window.<br />
May be temporary.</p>
<p>pWnd<br />
Contains a pointer to the control asking for the color.<br />
May be temporary.</p>
<p>nCtlColor<br />
Contains one of the following values, specifying the type of control:</p>
<p>CTLCOLOR_BTN Button control<br />
CTLCOLOR_DLG Dialog box<br />
CTLCOLOR_EDIT Edit control<br />
CTLCOLOR_LISTBOX List-box control<br />
CTLCOLOR_MSGBOX Message box<br />
CTLCOLOR_SCROLLBAR Scroll-bar control<br />
CTLCOLOR_STATIC Static control</p>
<p>Return Value<br />
OnCtlColor must return a handle to the brush that is to be used for<br />
painting the control background.</p>
</blockquote>
<p>Hier wird CTLCOLOR_MSGBOX erwähnt und das ich mittels pDC ( pDC-&gt;SetBkColor() )<br />
theoretisch die Farbe ändern müsste ( wurde im &quot;posted code&quot; nicht erwähnt ).<br />
Weder pDC-&gt;SetBkColor() noch der Weg im &quot;posted code&quot; funktioniert.</p>
<p>Hooks und Subclassing kenne ich nicht, kann also nichts dazu sagen.<br />
Werde mich da mal schlau machen.</p>
<p>Ansonsten würde ich gerne eure Meinung über diesen MSDN-Eintrag haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205637</guid><dc:creator><![CDATA[Daniellus]]></dc:creator><pubDate>Mon, 08 Jan 2007 13:36:03 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 13:41:36 GMT]]></title><description><![CDATA[<p>Firefighter...du bist ja ein Trickser <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 />
Wenn ich keinen anderen Weg finde, dann tue ich das auch, bevor ich mir noch einen Wolf suche! ( wo kommen bloß immer die seltsamen Sprüche her :-{) )</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205640</guid><dc:creator><![CDATA[Daniellus]]></dc:creator><pubDate>Mon, 08 Jan 2007 13:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 13:53:06 GMT]]></title><description><![CDATA[<p>think simple <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/1205656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205656</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 08 Jan 2007 13:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 18:37:00 GMT]]></title><description><![CDATA[<p>Ich habe dazu bereits alles geschrieben was es zu schreiben gibt:<br />
CTLCOLOR_MSGBOX ist obsolet genauso wie WM_CTLCOLORMSGBOX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1205919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1205919</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 08 Jan 2007 18:37:00 GMT</pubDate></item><item><title><![CDATA[Reply to MessageBox Hintergrundfarbe ändern? on Mon, 08 Jan 2007 23:24:51 GMT]]></title><description><![CDATA[<p>Eine eigene MessageBox Funktion/Klasse kann IMHO sowieso nicht schaden. Diese Standard-Messageboxen mit &quot;Press Yes to Blubb, No to Blobber or Abort to Bluddel&quot; Texten sind sowieso grauenhaft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1206103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1206103</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 08 Jan 2007 23:24:51 GMT</pubDate></item></channel></rss>