<?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[Text undurchsichtig auf Canvas mit TextRect() oder DrawText()]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich schreibe Text auf einen Canvas und habe aber diesen immer durchsichtig,<br />
obwohl lt. Hilfe mit ETO_OPAQUE dieser undurchsichtig ausgegeben werden soll:</p>
<pre><code class="language-cpp">if(Form1-&gt;oSNumm==true &amp;&amp; zID.Length()&gt;0) {                                   // PORTNUMMERIERUNG
   Grid-&gt;Canvas-&gt;TextFlags=ETO_OPAQUE;                                          // undurchsichtigen HG setzen
   Grid-&gt;Brush-&gt;Color=clWhite;                                                  // Farbe HG festlegen
   Grid-&gt;Canvas-&gt;Font-&gt;Color=clSilver;                                          // Farbe VG festlegen
   ARect=Rect(dxL+2,dyO+2,dxR-1,dyU-1);  i2=1 | 4;                              // Rechteck innen festlegen (i2=DT_CENTER = 1 + 4 = DT_VCENTER)
   Grid-&gt;Canvas-&gt;TextRect(ARect,ARect.Left+2,(ARect.Top+ARect.Bottom-Grid-&gt;Canvas-&gt;TextHeight(zID))/2,zID);
   //DrawText(Grid-&gt;Canvas-&gt;Handle,zID.c_str(),-1,&amp;ARect,DT_SINGLELINE | i2 );    // Nummmerierung einschreiben
  }                                                                             // ende if(Form1
</code></pre>
<p>Dabei ist es egal, ob ich den Text mit TextRect() oder mit DrawText() ausgebe.</p>
<p>Wäre für einen Tip echt dankbar, da ich einige Zeit schon darüber grübel<br />
und den Wurm nicht finde <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>
<p>Gruss Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/176225/text-undurchsichtig-auf-canvas-mit-textrect-oder-drawtext</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 02:53:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/176225.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Mar 2007 10:22:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Text undurchsichtig auf Canvas mit TextRect() oder DrawText() on Mon, 19 Mar 2007 10:22:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich schreibe Text auf einen Canvas und habe aber diesen immer durchsichtig,<br />
obwohl lt. Hilfe mit ETO_OPAQUE dieser undurchsichtig ausgegeben werden soll:</p>
<pre><code class="language-cpp">if(Form1-&gt;oSNumm==true &amp;&amp; zID.Length()&gt;0) {                                   // PORTNUMMERIERUNG
   Grid-&gt;Canvas-&gt;TextFlags=ETO_OPAQUE;                                          // undurchsichtigen HG setzen
   Grid-&gt;Brush-&gt;Color=clWhite;                                                  // Farbe HG festlegen
   Grid-&gt;Canvas-&gt;Font-&gt;Color=clSilver;                                          // Farbe VG festlegen
   ARect=Rect(dxL+2,dyO+2,dxR-1,dyU-1);  i2=1 | 4;                              // Rechteck innen festlegen (i2=DT_CENTER = 1 + 4 = DT_VCENTER)
   Grid-&gt;Canvas-&gt;TextRect(ARect,ARect.Left+2,(ARect.Top+ARect.Bottom-Grid-&gt;Canvas-&gt;TextHeight(zID))/2,zID);
   //DrawText(Grid-&gt;Canvas-&gt;Handle,zID.c_str(),-1,&amp;ARect,DT_SINGLELINE | i2 );    // Nummmerierung einschreiben
  }                                                                             // ende if(Form1
</code></pre>
<p>Dabei ist es egal, ob ich den Text mit TextRect() oder mit DrawText() ausgebe.</p>
<p>Wäre für einen Tip echt dankbar, da ich einige Zeit schon darüber grübel<br />
und den Wurm nicht finde <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>
<p>Gruss Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248236</guid><dc:creator><![CDATA[Stefan71242]]></dc:creator><pubDate>Mon, 19 Mar 2007 10:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to Text undurchsichtig auf Canvas mit TextRect() oder DrawText() on Mon, 19 Mar 2007 11:03:16 GMT]]></title><description><![CDATA[<p>Ich bin mir nicht sicher, ob ich das Problem richtig verstehe. Wenn es darum geht, dass der Hintergrund nicht weiß gezeichnet wird, liegt es daran, dass Du diesen nicht zeichnest:</p>
<pre><code class="language-cpp">if(Form1-&gt;oSNumm==true &amp;&amp; zID.Length()&gt;0) {                                   // PORTNUMMERIERUNG
   Grid-&gt;Canvas-&gt;TextFlags=ETO_OPAQUE;                                          // undurchsichtigen HG setzen
   Grid-&gt;Brush-&gt;Color=clWhite;                                                  // Farbe HG festlegen
   Grid-&gt;Canvas-&gt;Font-&gt;Color=clSilver;                                          // Farbe VG festlegen
   ARect=Rect(dxL+2,dyO+2,dxR-1,dyU-1);  i2=1 | 4;                              // Rechteck innen festlegen (i2=DT_CENTER = 1 + 4 = DT_VCENTER)
   Grid-&gt;Canvas-&gt;FillRect(Rect);  // &lt;-- Hintergrund zeichnen
   Grid-&gt;Canvas-&gt;TextRect(ARect,ARect.Left+2,(ARect.Top+ARect.Bottom-Grid-&gt;Canvas-&gt;TextHeight(zID))/2,zID);
   //DrawText(Grid-&gt;Canvas-&gt;Handle,zID.c_str(),-1,&amp;ARect,DT_SINGLELINE | i2 );    // Nummmerierung einschreiben
  }                                                                             // ende if(Form1
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1248276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248276</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 19 Mar 2007 11:03:16 GMT</pubDate></item><item><title><![CDATA[Reply to Text undurchsichtig auf Canvas mit TextRect() oder DrawText() on Mon, 19 Mar 2007 11:51:52 GMT]]></title><description><![CDATA[<p>...wird mit</p>
<pre><code class="language-cpp">Grid-&gt;Canvas-&gt;FillRect(Rect);
</code></pre>
<p>aber komplett als Viereck gezeichnet. Es soll aber<br />
ja nur der Texthintergrund selbst (also die einzelnen Buchstaben)<br />
weiss hinterlegt sein. Ich war bis jetzt davon ausgegangen, daß<br />
dies mit den beiden Farbangaben:</p>
<pre><code class="language-cpp">Grid-&gt;Brush-&gt;Color=clWhite;                                                  // Farbe HG festlegen
   Grid-&gt;Canvas-&gt;Font-&gt;Color=clSilver;                                          // Farbe VG festlegen
</code></pre>
<p>erfolgt. Leider scheint nur bei der Textausgabe der Font-&gt;Color Befehl zu greifen.<br />
Es muss aber doch möglich sein, z.B. ein gelbes Viereck zu zeichnen und in der<br />
Mitte davon den Text &quot;1234&quot; mit weissem Hintergrund auszugeben (ohne vorher die<br />
Abmessungen des Textes zu kennen; dann könnte ich ja in der Tat ein weisses<br />
Viereck dahinterlegen)</p>
<p>Grüsse Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248314</guid><dc:creator><![CDATA[Stefan71242]]></dc:creator><pubDate>Mon, 19 Mar 2007 11:51:52 GMT</pubDate></item><item><title><![CDATA[Reply to Text undurchsichtig auf Canvas mit TextRect() oder DrawText() on Mon, 19 Mar 2007 11:58:00 GMT]]></title><description><![CDATA[<p>Zumindest mit den Funktionen, die mir bekannt sind (bin da nicht so die Leuchte), muß der Hintergrund 'von Hand' gezeichnet werden.<br />
Über Canvas::TextExtent lassen sich die Dimensionen des Textes einfach ermitteln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248318</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 19 Mar 2007 11:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Text undurchsichtig auf Canvas mit TextRect() oder DrawText() on Mon, 19 Mar 2007 12:15:51 GMT]]></title><description><![CDATA[<p>Hallo, Joe</p>
<p>habe jetzt nochmal einiges probiert und bin auf etwas interessantes gestossen:<br />
Bei einigen Farbhintergründen klappt es, bei einigen nicht? <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="😕"
    /><br />
Da scheint mir die Verknüpfung der einzelnen Bildpunkte eine Rolle zu spielen;<br />
verstehe dann aber beim besten Willen denn Sinn von</p>
<pre><code class="language-cpp">Grid-&gt;Canvas-&gt;TextFlags=ETO_OPAQUE;                                          // undurchsichtigen HG setzen
</code></pre>
<p>nicht. Wenn ich den HG immer malen muss, brauche ich auch keinen Textstil mehr!?</p>
<p>Also wenn noch jemand eine Idee hat, irgendwie habe ich das Gefühl eine Kleinigkeit zu übersehen... grübel..</p>
<p>Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248329</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248329</guid><dc:creator><![CDATA[Stefan71242]]></dc:creator><pubDate>Mon, 19 Mar 2007 12:15:51 GMT</pubDate></item><item><title><![CDATA[Reply to Text undurchsichtig auf Canvas mit TextRect() oder DrawText() on Mon, 19 Mar 2007 12:35:30 GMT]]></title><description><![CDATA[<p>Hei, peinlich peinlich,<br />
aber an anderer Stelle ist das Programm in einer andere Routine gehüpft<br />
und dort fehlte das</p>
<pre><code class="language-cpp">Grid-&gt;Canvas-&gt;Brush-&gt;Color=clWhite
</code></pre>
<p>Danke aber für die Unterstützung. <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="👍"
    /></p>
<p>Gruss Stefan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1248339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248339</guid><dc:creator><![CDATA[Stefan71242]]></dc:creator><pubDate>Mon, 19 Mar 2007 12:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to Text undurchsichtig auf Canvas mit TextRect() oder DrawText() on Mon, 19 Mar 2007 15:09:20 GMT]]></title><description><![CDATA[<p>... und ich glaube, anstatt</p>
<pre><code class="language-cpp">Grid-&gt;Canvas-&gt;TextFlags=ETO_OPAQUE;
</code></pre>
<p>benutzt Du besser:</p>
<pre><code class="language-cpp">Grid-&gt;Canvas-&gt;Brush-&gt;Style = bsSolid; // oder bsClear
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1248481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1248481</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Mon, 19 Mar 2007 15:09:20 GMT</pubDate></item></channel></rss>