<?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[Backgroundfarbe von Edit-Feld ändern]]></title><description><![CDATA[<p>Hi alle, <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 />
ich möchte zwei Edit-Felder ändern, und zwar die Backgroundfarbe.<br />
Ich habe so gemacht:<br />
1. Einen Pinsel deklariert</p>
<pre><code class="language-cpp">CBrush a;
</code></pre>
<p>2.Erstellt in OnInitDialog()</p>
<pre><code class="language-cpp">a.CreateSolidBrush(RGB(0, 255, 0));
</code></pre>
<p>3.Nachrichtenbearbeiter WM_CTLCOLOR erstellt<br />
4.Kod für Nachrichtenbearbeiter geschrieben</p>
<pre><code class="language-cpp">HBRUSH CFdsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
   if (nCtlColor==CTLCOLOR_EDIT){ 
  return  a;
    }
    return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);;
}
</code></pre>
<p>Nun will ich, dass meine Edit-Felder nicht immer und nicht gleichzeitig beide grün sind. Die grüne Farbe muss einen Zustand der im Hintergrund laufenden Anwendung zeigen. Wie kann man in der OnCtlColor() auf bestimmte Edit-Felder zugreifen und Farbe abhängig von irgend-welcher Bedingungen ändern? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203284/backgroundfarbe-von-edit-feld-ändern</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 00:01:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203284.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jan 2008 10:14:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 10:14:31 GMT]]></title><description><![CDATA[<p>Hi alle, <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 />
ich möchte zwei Edit-Felder ändern, und zwar die Backgroundfarbe.<br />
Ich habe so gemacht:<br />
1. Einen Pinsel deklariert</p>
<pre><code class="language-cpp">CBrush a;
</code></pre>
<p>2.Erstellt in OnInitDialog()</p>
<pre><code class="language-cpp">a.CreateSolidBrush(RGB(0, 255, 0));
</code></pre>
<p>3.Nachrichtenbearbeiter WM_CTLCOLOR erstellt<br />
4.Kod für Nachrichtenbearbeiter geschrieben</p>
<pre><code class="language-cpp">HBRUSH CFdsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
   if (nCtlColor==CTLCOLOR_EDIT){ 
  return  a;
    }
    return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);;
}
</code></pre>
<p>Nun will ich, dass meine Edit-Felder nicht immer und nicht gleichzeitig beide grün sind. Die grüne Farbe muss einen Zustand der im Hintergrund laufenden Anwendung zeigen. Wie kann man in der OnCtlColor() auf bestimmte Edit-Felder zugreifen und Farbe abhängig von irgend-welcher Bedingungen ändern? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440428</guid><dc:creator><![CDATA[Noch_Student]]></dc:creator><pubDate>Mon, 21 Jan 2008 10:14:31 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 11:23:25 GMT]]></title><description><![CDATA[<p>In dem du die ID des Controls testes.</p>
<pre><code class="language-cpp">HBRUSH CFdsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
   if (pWnd-&gt;GetDlgCtrlID() == IDC_DeinEdit &amp;&amp; zustand == TRUE){ 
  return  a;
    }
    return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);;
}
</code></pre>
<p>So mal als Beispiel, Wobei IDC_DeinEdit der IDC des gewüscht zu ändenten Edit ist, und zustand der Zustand deiner Hintergrundanwendung, wie du das genau ermittelst muß du selbst wissen, kenn ja deinen Quellcode nicht.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440491</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Mon, 21 Jan 2008 11:23:25 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 11:27:39 GMT]]></title><description><![CDATA[<p>Für solche Sachen ist immer <a href="http://www.coding-help.de/steuer_allg.html" rel="nofollow">codeing-help.de</a> ganz hilfreich. Da findest du dann alles Rund um die gängigen Steuerelemente.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440494</guid><dc:creator><![CDATA[Uruk-h4j]]></dc:creator><pubDate>Mon, 21 Jan 2008 11:27:39 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 11:36:18 GMT]]></title><description><![CDATA[<p>Uruk-h4j schrieb:</p>
<blockquote>
<p>Für solche Sachen ist immer <a href="http://www.coding-help.de/steuer_allg.html" rel="nofollow">codeing-help.de</a> ganz hilfreich. Da findest du dann alles Rund um die gängigen Steuerelemente.</p>
</blockquote>
<p>Dein Hinweis ganz schön und gut, doch wenn man das so übernimmt, hat man ganz schnell keine Handles mehr, oder was glaubst Du wer die Handles der erstellten Brushs (HBRUSH hBGBrush = CreateSolidBrush(RGB(128, 184, 223));) wieder frei gibt und die OnCtlColor wird sehr oft durchlaufen. Oder lieg ich da falsch?</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440499</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Mon, 21 Jan 2008 11:36:18 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 12:08:52 GMT]]></title><description><![CDATA[<p>CTecS schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if (pWnd-&gt;GetDlgCtrlID() == IDC_DeinEdit &amp;&amp; zustand == TRUE){
</code></pre>
</blockquote>
<p>Das funktioniert gut, mit einem 'aber':<br />
Der Zustand 'TRUE' wird nicht sofort beim Initialisieren des Dialogs erreicht. Ich sehe schon an einem externen Programm, dass meine Anwendung läuft und der Zustand=TRUE angenommen wird, aber der Edit-Feld ist nicht grün. Erst wenn ich das Fenster minimiere oder anders neu zeichnen lasse, dann ist es grün. Ich glaub, dass es eine Funktion wie Redraw() oder Repaint() oder ähnliche notwendig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440522</guid><dc:creator><![CDATA[Noch_Student]]></dc:creator><pubDate>Mon, 21 Jan 2008 12:08:52 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 12:16:09 GMT]]></title><description><![CDATA[<p>Wenn der Zustand erreicht wird, kannst du mit Invalidate() entweder auf dem ganzen Dialog oder besser auf das Kontroll ein Neuzeichnen bewirken. Außerdem war das mit dem TRUE/FALSE nut ein Beispiel, wie Du das jetzt genau umsetzt is ja deine Angelegenheit und vom Ablauf deines Programmes abhängig.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440528</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Mon, 21 Jan 2008 12:16:09 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 12:30:29 GMT]]></title><description><![CDATA[<p>Wie kann man das Neuzeichnen nur eines Kontrolls bewirken?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440536</guid><dc:creator><![CDATA[Noch_Student]]></dc:creator><pubDate>Mon, 21 Jan 2008 12:30:29 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 13:14:16 GMT]]></title><description><![CDATA[<p>CWnd::Invalidate</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440571</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 21 Jan 2008 13:14:16 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 13:33:16 GMT]]></title><description><![CDATA[<p>Ok, alles klar! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Für das Edit-Feld eine Variable vom Typ 'control' erstellen und dann variable.Invalidate() aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440591</guid><dc:creator><![CDATA[Noch_Student]]></dc:creator><pubDate>Mon, 21 Jan 2008 13:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to Backgroundfarbe von Edit-Feld ändern on Mon, 21 Jan 2008 14:02:22 GMT]]></title><description><![CDATA[<p>Wer lesen kann hats leichter im leben! Hättest Du meinen Beitrag gelesen hätte sich deine letzte Frage über das Neuzeichnen erledigt.</p>
<p>Gruß Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1440624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1440624</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Mon, 21 Jan 2008 14:02:22 GMT</pubDate></item></channel></rss>