<?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[Hintergrundfarbe im Dialog]]></title><description><![CDATA[<p>Ich versteh die Welt nicht mehr.<br />
Was ist daran Falsch.<br />
Ich möchte die Hintergrundfarbe des Dialogfeldes änder (Klappt auch).<br />
Edit-Felder bzw. ComboBoxen sollen eine andere Farbe bekommen.<br />
Deshalb habe ich in OnInitDialog()</p>
<pre><code class="language-cpp">m_Brush.CreateSolidBrush(RGB(0,255,0));
</code></pre>
<p>und in OnCtlColor();</p>
<pre><code class="language-cpp">HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
pDC-&gt;SetBkMode(TRANSPARENT);
switch (pWnd-&gt;GetDlgCtrlID())   
    {  
     case IDC_USERL: // ComboBox control ID funktioniert (ist rot)     
        pDC-&gt;SetBkColor(RGB(255,0,0)); 
        pDC-&gt;SetTextColor(RGB(0,0,0)); 
        hbr = m_Brush; 
        break;
	case IDC_CHATMSG: // CEdit control ID funktioniert nicht (ist grün)

        pDC-&gt;SetBkColor(RGB(255,0,0)); 
        pDC-&gt;SetTextColor(RGB(0,0,0)); 
        hbr = m_Brush; 
        break;
	case IDD_GAMIGOTV_DIALOG: // CDialog control ID 

        pDC-&gt;SetBkColor(RGB(0,255,0)); // Hat keine Auswirkung, egal was ich reinschreibe, bleibt auch bei RGB(0,0,0) grün
        pDC-&gt;SetTextColor(RGB(0,0,0)); 
        hbr = m_Brush; 
        break;

    default:     
        hbr=CDialog::OnCtlColor(pDC,pWnd,nCtlColor); 
        break;   
    } 
	return m_Brush;
</code></pre>
<p>Habe auch schon versucht hbr statt m_Brush zurückzugeben.<br />
Dann werden zwar die Editfelder Rot aber das Dialogfeld bekommt gar keine Farbe bzw. nur die Standard-Systemfarbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/67644/hintergrundfarbe-im-dialog</link><generator>RSS for Node</generator><lastBuildDate>Sat, 06 Jun 2026 11:06:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/67644.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 10 Mar 2004 11:43:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 11:43:17 GMT]]></title><description><![CDATA[<p>Ich versteh die Welt nicht mehr.<br />
Was ist daran Falsch.<br />
Ich möchte die Hintergrundfarbe des Dialogfeldes änder (Klappt auch).<br />
Edit-Felder bzw. ComboBoxen sollen eine andere Farbe bekommen.<br />
Deshalb habe ich in OnInitDialog()</p>
<pre><code class="language-cpp">m_Brush.CreateSolidBrush(RGB(0,255,0));
</code></pre>
<p>und in OnCtlColor();</p>
<pre><code class="language-cpp">HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
pDC-&gt;SetBkMode(TRANSPARENT);
switch (pWnd-&gt;GetDlgCtrlID())   
    {  
     case IDC_USERL: // ComboBox control ID funktioniert (ist rot)     
        pDC-&gt;SetBkColor(RGB(255,0,0)); 
        pDC-&gt;SetTextColor(RGB(0,0,0)); 
        hbr = m_Brush; 
        break;
	case IDC_CHATMSG: // CEdit control ID funktioniert nicht (ist grün)

        pDC-&gt;SetBkColor(RGB(255,0,0)); 
        pDC-&gt;SetTextColor(RGB(0,0,0)); 
        hbr = m_Brush; 
        break;
	case IDD_GAMIGOTV_DIALOG: // CDialog control ID 

        pDC-&gt;SetBkColor(RGB(0,255,0)); // Hat keine Auswirkung, egal was ich reinschreibe, bleibt auch bei RGB(0,0,0) grün
        pDC-&gt;SetTextColor(RGB(0,0,0)); 
        hbr = m_Brush; 
        break;

    default:     
        hbr=CDialog::OnCtlColor(pDC,pWnd,nCtlColor); 
        break;   
    } 
	return m_Brush;
</code></pre>
<p>Habe auch schon versucht hbr statt m_Brush zurückzugeben.<br />
Dann werden zwar die Editfelder Rot aber das Dialogfeld bekommt gar keine Farbe bzw. nur die Standard-Systemfarbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477239</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Wed, 10 Mar 2004 11:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 12:18:45 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39067" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=39067</a></p>
<p>schau mal darein, der letzte Eintrag hat bei mir funktioniert, soweit ich mich erinnere.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477286</guid><dc:creator><![CDATA[Daishy]]></dc:creator><pubDate>Wed, 10 Mar 2004 12:18:45 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 12:41:05 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>mein OnCtlColor...</p>
<pre><code>HBRUSH CForm1::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
    HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

    switch (nCtlColor) 
    { 

    case CTLCOLOR_STATIC:

        if(pWnd-&gt;GetDlgCtrlID() == IDC_UPDATE || pWnd-&gt;GetDlgCtrlID() == IDC_CHECKMAIL){

            pDC-&gt;SetBkMode(TRANSPARENT);        // Setzt den Hintergrund, dort wo Text ist transparent, 
                                                // so daß elemente_farbe auch hinter den Zeichen ist
            hbr = (HBRUSH)white_brush;            // Setzt die Farbe für den Hintergrund

            break;            

        }

        break;

    case CTLCOLOR_LISTBOX:

        if(pWnd-&gt;GetDlgCtrlID() == IDC_LISTE_FIRMEN &amp;&amp; FIRMA_SELECTED)

        {

             pDC-&gt;SetBkMode(TRANSPARENT);        // Setzt den Hintergrund, dort wo Text ist transparent, 
                                                // so daß elemente_farbe auch hinter den Zeichen ist
            hbr = (HBRUSH) listen_farbe;        // Setzt die Farbe für den Hintergrund

            break;

        }else if(pWnd-&gt;GetDlgCtrlID() == IDC_DEVICE_TYPE_LISTE &amp;&amp; GTYP_SELECTED){

              pDC-&gt;SetBkMode(TRANSPARENT);        // Setzt den Hintergrund, dort wo Text ist transparent, 
                                                // so daß elemente_farbe auch hinter den Zeichen ist            
            hbr = (HBRUSH) listen_farbe;        // Setzt die Farbe für den Hintergrund
            break;    

        }
        break;

    }

    return hbr;
}
</code></pre>
<p>Ich habe zwei Membervariablen vom Type CBrush namens elemente_farbe &amp; listen_farbe.<br />
Diese initialisierst Du wo Du willst ( Beispiel im Konstruktor ).<br />
Diese müssen dann im Destruktor gekillt werden gleichzeitig.</p>
<p>Die Edits heißen übrigens CTLCOLOR_EDIT.</p>
<p>Und alles wird gut.... <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>Ach so, den Dialog Hintergrund laß ich im</p>
<pre><code>void CForm1::OnPaint() 
{
	CPaintDC dc(this);

	CRect rect; 
	GetClientRect(&amp;rect); 
	dc.FillSolidRect(&amp;rect,WHITE); 

	CFormView::OnPaint();
}
</code></pre>
<p>machen.</p>
<p>Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477322</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Wed, 10 Mar 2004 12:41:05 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 15:00:43 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/488">@BOA</a></p>
<p>danke, das klappt sehr gut. <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="😃"
    /><br />
Aber ist dir schon mal aufgefallen, das wenn eine Combobox auf Dropdown-Listenfeld steht, immer der erste Eintrag Weiß ist?<br />
Hast Du ne Lösung für das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477493</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Wed, 10 Mar 2004 15:00:43 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 15:13:30 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>das habe ich gerade vor kurzen hier irgendwo gelesen, daß darüber philosophiert wurde.<br />
Hab es aber nicht mehr verfolgt. Warst Du nicht daran sogar beteiligt ?</p>
<p>Aber ist mir so noch nicht aufgefallen.<br />
Klingt aber verdammt nach Subclassen, und dann per Hand, weil die Combobox ja aus Liste und Editfeld besteht ?!?! (&lt;-- nur ne Vermutung, das mit dem Subclassen. )</p>
<p>Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477510</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Wed, 10 Mar 2004 15:13:30 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 15:22:41 GMT]]></title><description><![CDATA[<p>Ne, hab mich nicht daran beteiligt. Habe das selbst erst vor zwei Tagen festgestellt. (oder wars gestern?) Egal.<br />
Ich hab mal mit Rapha darüber gesprochen, allerdings nur über ICQ.</p>
<p>Mal was anderes. Weißt du wie ich meinen Code ändern muss, damit ich nicht die Standard-farbe zurückbekomme, wenn meine ComboBox deaktiviert ist.<br />
Ich hab jetzt ein graues Dialogfeld und eine deaktivierte Combobox hat die Systemfarbe. Wenn Sie aktiviert wird ist sie weg (also die Farbe, nicht die Box) <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="😃"
    /><br />
Ach ja und die Ränder von den GroupBoxen sind auch noch in der Systemfarbe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
und das obwohl ich</p>
<pre><code class="language-cpp">default:
pDC-&gt;SetBkMode(TRANSPARENT);
hbr = (HBRUSH) listen_farbe;
break;
</code></pre>
<p>gemacht habe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477517</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Wed, 10 Mar 2004 15:22:41 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 15:49:32 GMT]]></title><description><![CDATA[<p>Aloha,</p>
<p>das sind ja gleich drei Wünsche auf einmal. <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>Bei den Gruppenfeldern such ich auch ne Lösung ohne Subclassen zu müssen.<br />
Nee, leider keine Ahnung.</p>
<p>So ein richtiger Hackerscheiß wäre es, wenn Du bei Bedarf die Systemfarben änderst. <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 />
Da freut sich der Anwender....</p>
<p>Ansonsten bleibt glaube ich nur Deine eigene Sub-Klasse schreiben für Listboxen und selber ausmalen. ( auch nur ne Mutmaßung, bei Buttons funzt es jedenfalls, da hab ich mir ne Klasse bei Codeguru geklaut, wo ich bei Buttons mir meine eigene Farben setzen kann) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ).</p>
<p>Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477566</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Wed, 10 Mar 2004 15:49:32 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe im Dialog on Wed, 10 Mar 2004 18:05:08 GMT]]></title><description><![CDATA[<p>Hi!<br />
Zum BOAs <em>mein OnCtlColor</em> hätte ich diese kleine Ergänzung:</p>
<pre><code class="language-cpp">HBRUSH CAuswahlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	if(CTLCOLOR_DLG)
		return HBRUSH(*m_HinterGrundBrush);
	return hbr;
}
</code></pre>
<p>Damit wäre das OnPaint() nicht nötig. <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>Gruß A.K.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/477792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/477792</guid><dc:creator><![CDATA[Andreas Kapust]]></dc:creator><pubDate>Wed, 10 Mar 2004 18:05:08 GMT</pubDate></item></channel></rss>