<?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 einer CListBox ändern?]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich die <strong>Hintergrund-Farbe</strong> (normaleweise weiß) einr <strong>CListBox</strong> auf <strong>grau</strong> setzen, ohne sie zu 'disablen'?</p>
<p>Danke,</p>
<p>Sebastian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/57772/hintergrundfarbe-einer-clistbox-ändern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 03 Jun 2026 20:32:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/57772.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Dec 2003 19:37:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hintergrundfarbe einer CListBox ändern? on Sun, 07 Dec 2003 19:37:53 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann ich die <strong>Hintergrund-Farbe</strong> (normaleweise weiß) einr <strong>CListBox</strong> auf <strong>grau</strong> setzen, ohne sie zu 'disablen'?</p>
<p>Danke,</p>
<p>Sebastian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/410506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/410506</guid><dc:creator><![CDATA[sebhad]]></dc:creator><pubDate>Sun, 07 Dec 2003 19:37:53 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe einer CListBox ändern? on Mon, 08 Dec 2003 11:31:10 GMT]]></title><description><![CDATA[<p>Das machst Du in OnCtlColor Deiner Klasse.</p>
<p>Lege Dir zusätzlich einen CBrush als Membervariable in der Klasse an.<br />
Bei mir heißt er listen_farbe.</p>
<p>Initialisier den Brush mit listen_farbe.CreateSolidBrush(RGB(0,0,0)) im Konstruktor und vergiß nicht ihn zu löschen im Destruktor der Klasse mit listen_farbe.DeleteObject(), sonst Game over irgendwann, weil Dir die offenen GDI-Objekte den Grakaspeicher um die Ohren hauen. Ich bin ein gebranntes Kind, was das betrifft. <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>FIRMA_SELECTED ist eine BOOL, damit OnCtlColor() Bescheid weiß, daß jetzt eine andere Farbe als die Standardfarbe als Hintergrund gilt.</p>
<pre><code>HBRUSH CForm1::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

	switch (nCtlColor) 
	{ 

	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;

		}			break;	

		}
		break;

	}

	return hbr;
}
</code></pre>
<p>Wenn sich Deine Hintergrundfarbe z.B. auf Knopfdruck verändern soll oder wie auch immer, zwingst Du zum Deine Liste mit</p>
<pre><code>meine_liste.RedrawWindow();
</code></pre>
<p>zum Neuzeichnen</p>
<p>Vorher die oben beschriebene BOOL auf TRUE setzen und schon weiß OnCTlColor() Bescheid, daß der Hintergrund ne andere Farbe bekommt.</p>
<p>Mit der BOOL ist bestimmt net das eleganteste, aber funzt 100%.</p>
<p>Beste Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/410805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/410805</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Mon, 08 Dec 2003 11:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe einer CListBox ändern? on Mon, 08 Dec 2003 23:22:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>vielen Dank für die qualifizierte Hilfe! Ich hab das mal wie folgt ausprobiert, jedoch hat sich an der Farbe meiner CListBox <strong>nichts geändert</strong>??<br />
Ich weiß nicht, was ich falsch mache.<br />
Das Objekt habe ich zu testzwecken gleich &quot;vor Ort&quot; erzeugt und wieder gelöscht.</p>
<p>Mal was ganz anderes:<br />
Ich habe sehr lange in <em>Delphi</em> programmiert, und da musste man lediglich im Objectinspector in der Eigenschaft &quot;Color&quot; die gewünschte Farbe einstellen. Nur in VC++ scheint das eine halbe <strong>Doktorarbeit</strong> zu sein?!?</p>
<pre><code>HBRUSH CPerlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

	if (nCtlColor==CTLCOLOR_LISTBOX &amp;&amp; pWnd-&gt;GetDlgCtrlID()==IDC_REF_LIST)
	{

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

    return hbr; 
}
</code></pre>
<p>Leider habe ich auch keine Übersicht gefunden, die mir sagen könnte, wie ich das typische Grau der Steuerelemente definiere (in Delphi wäre das clBtnFace).</p>
<p>Was muss ich der Variablen &quot;listen_farbe&quot; zuweisen?</p>
<p>Vielen Dank nochmal für die Hilfe,</p>
<p>Sebastian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/411479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/411479</guid><dc:creator><![CDATA[sebhad]]></dc:creator><pubDate>Mon, 08 Dec 2003 23:22:40 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe einer CListBox ändern? on Tue, 09 Dec 2003 09:55:46 GMT]]></title><description><![CDATA[<p>Aloha noch einmal,</p>
<p>die Idee mit dem Aufräumen gleich danach weist Dich prinzipiell als ordentlichen Menschen aus. <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>Hat allerdings den Nachteil, daß Du den Brush, mit dem Du die Hintergrundfarbe setzen willst, gleich wieder killst und somit ihn nicht angezeigt bekommst. <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>Erschaffe eine Membervariable namens</p>
<pre><code>CBrush listen_farbe;
</code></pre>
<p>Im Konstruktor von CPerlDlg erschaffst Du folgende Hintergrundfarbe</p>
<pre><code>listen_farbe.CreateSolidBrush(GetSysColor(COLOR_GRAYTEXT));   // GetSysColor holt diverse Systemfarben
</code></pre>
<p>Bitte in der MSDN unter GetSysColor die richtige Variable suchen.</p>
<p>Nicht im Destruktor Deiner Klasse vergessen :</p>
<pre><code>listen_farbe.DeleteObject()
</code></pre>
<p>Und dann den Pinsel so im OnCtlColor() wie in meinem ersten Posting an hbr übergeben.</p>
<p>Ein Brush ist nichts anderes als ein Bild, wenn Du es löschst, ist es auch weg, und kann net mehr benutzt werden.</p>
<p>Beste Grüße</p>
<p>BOA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/411656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/411656</guid><dc:creator><![CDATA[BOA]]></dc:creator><pubDate>Tue, 09 Dec 2003 09:55:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe einer CListBox ändern? on Tue, 09 Dec 2003 11:28:44 GMT]]></title><description><![CDATA[<p>Vielen Dank nochmal!</p>
<p>Jetzt hab ichs hinbekommen. Manches ist schon etwas gewöhnungsbedüftig, aber was soll man machen...<br />
Das war wirklich eine engagierte Hilfe.</p>
<p>Viele Grüße,</p>
<p>Sebastian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/411726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/411726</guid><dc:creator><![CDATA[sebhad]]></dc:creator><pubDate>Tue, 09 Dec 2003 11:28:44 GMT</pubDate></item></channel></rss>