<?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[TListView-&amp;gt;OnCustomDrawSubItem]]></title><description><![CDATA[<p>Hallöle...</p>
<p>Irgendwie stehe ich mit dem ListView von Borland auf Kriegsfuß <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 will eigendlich nur ganz gemütlich die Hintergrundfarbe der Items ändern, je nch dem welche Spalte gerade angeklickt wurde.<br />
Nun ist aber das Problem, das z.B. die Item-&gt;Caption-Spalte an 2.Stelle steht.<br />
Wenn nun der SubItem gezeichnet wird, der sich an erster Position befindet, mal der mir über die Captionspalte, so das bei beiden der gleiche Hintergrund ist... Das ist blöd....</p>
<p>Wie könnte ich das in den Griff bekommen? (OnAdvancedCustomDrawSubItem hilft nix)</p>
<p>Ich hatte jetzt auch schon versucht, einfach mittels OnCustomDraw die Spalte zu färben und den Item transparent zu machen. Will aber auch nicht <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 />
Befehl aus der WinAPI dafür:</p>
<pre><code class="language-cpp">ListView_SetTextBkColor(ListView1-&gt;Handle, CLR_NONE);
</code></pre>
<p>Hat aber irgendwie nur den Effekt, das der Text(nur der Text, nicht die gesammte Spaltenbreite, die ist Transparent) in der Farbe gemalt wird, in der ich auf den Hintergrund gemalt hab. Fällt natürlich bei einem an der Stelle weißen Hintergrund und roter Markierung auf...</p>
<p>Bsp:</p>
<pre><code>Spalte1 | Spalte2 | Spalte3 |
##T1### |   T4    |    T7   |
##T2### |   T5    |    T8   |
##T3### |   T6    |    T9   |
</code></pre>
<p>Spalte1 ist rot hinterlegt (OnCustomDraw). T1-T3 sind dargestellt so, wie sie sollen (schwarzer Text, roter Hintergrund).<br />
T4-T9 sind aber rot Hinterlegt (nur der Text, nicht die gesammte Breite) und das soll nicht <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>Hier OnCustomDraw:</p>
<pre><code class="language-cpp">TRect ColBounds = TRect(ColLeft,ARect.Top,ColLeft+
   ListView1-&gt;Columns-&gt;Items[theColPos]-&gt;Width,ARect.Bottom);
// Shade the column
// other event handlers overwrite this where there are list
// items but this code ensures shading extends to bottom of
// list view client rectangle
ListView1-&gt;Canvas-&gt;FillRect(ARect);
ListView1-&gt;Canvas-&gt;Brush-&gt;Color = SortColumnColor;
ListView1-&gt;Canvas-&gt;FillRect(ColBounds);
ListView1-&gt;Canvas-&gt;Brush-&gt;Color=ListView1-&gt;Color;
ListView_SetTextBkColor(ListView1-&gt;Handle, CLR_NONE);
DefaultDraw=true;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/121936/tlistview-gt-oncustomdrawsubitem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 09:52:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/121936.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Sep 2005 16:49:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TListView-&amp;gt;OnCustomDrawSubItem on Wed, 28 Sep 2005 16:49:15 GMT]]></title><description><![CDATA[<p>Hallöle...</p>
<p>Irgendwie stehe ich mit dem ListView von Borland auf Kriegsfuß <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 will eigendlich nur ganz gemütlich die Hintergrundfarbe der Items ändern, je nch dem welche Spalte gerade angeklickt wurde.<br />
Nun ist aber das Problem, das z.B. die Item-&gt;Caption-Spalte an 2.Stelle steht.<br />
Wenn nun der SubItem gezeichnet wird, der sich an erster Position befindet, mal der mir über die Captionspalte, so das bei beiden der gleiche Hintergrund ist... Das ist blöd....</p>
<p>Wie könnte ich das in den Griff bekommen? (OnAdvancedCustomDrawSubItem hilft nix)</p>
<p>Ich hatte jetzt auch schon versucht, einfach mittels OnCustomDraw die Spalte zu färben und den Item transparent zu machen. Will aber auch nicht <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 />
Befehl aus der WinAPI dafür:</p>
<pre><code class="language-cpp">ListView_SetTextBkColor(ListView1-&gt;Handle, CLR_NONE);
</code></pre>
<p>Hat aber irgendwie nur den Effekt, das der Text(nur der Text, nicht die gesammte Spaltenbreite, die ist Transparent) in der Farbe gemalt wird, in der ich auf den Hintergrund gemalt hab. Fällt natürlich bei einem an der Stelle weißen Hintergrund und roter Markierung auf...</p>
<p>Bsp:</p>
<pre><code>Spalte1 | Spalte2 | Spalte3 |
##T1### |   T4    |    T7   |
##T2### |   T5    |    T8   |
##T3### |   T6    |    T9   |
</code></pre>
<p>Spalte1 ist rot hinterlegt (OnCustomDraw). T1-T3 sind dargestellt so, wie sie sollen (schwarzer Text, roter Hintergrund).<br />
T4-T9 sind aber rot Hinterlegt (nur der Text, nicht die gesammte Breite) und das soll nicht <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>Hier OnCustomDraw:</p>
<pre><code class="language-cpp">TRect ColBounds = TRect(ColLeft,ARect.Top,ColLeft+
   ListView1-&gt;Columns-&gt;Items[theColPos]-&gt;Width,ARect.Bottom);
// Shade the column
// other event handlers overwrite this where there are list
// items but this code ensures shading extends to bottom of
// list view client rectangle
ListView1-&gt;Canvas-&gt;FillRect(ARect);
ListView1-&gt;Canvas-&gt;Brush-&gt;Color = SortColumnColor;
ListView1-&gt;Canvas-&gt;FillRect(ColBounds);
ListView1-&gt;Canvas-&gt;Brush-&gt;Color=ListView1-&gt;Color;
ListView_SetTextBkColor(ListView1-&gt;Handle, CLR_NONE);
DefaultDraw=true;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/882338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/882338</guid><dc:creator><![CDATA[-**xXx**-]]></dc:creator><pubDate>Wed, 28 Sep 2005 16:49:15 GMT</pubDate></item></channel></rss>