<?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[CBrush Problem]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe gerade ein komisches CBrush Problem und hoffe das vielleicht jemand hier einen Tipp hat <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>
<pre><code class="language-cpp">void draw(CDC * pDC)
{
  CBrush * pBrush = NULL;

  pBrush = func(pDC);

  // ...
}
</code></pre>
<p>Hier der schmatische Code. Warum ich das auslagern möchte aus der draw Methode ist weil die func methode eigentlich viel größer ist und es da eine auswahl über mehrere brushes geben soll.</p>
<pre><code class="language-cpp">CBrush * func(CDC * pDC)
{
  CBrush * pBrush = NULL;
  CBrush  a;
  a.CreateSolidBrush(RGB(255, 0,0));

  pBrush = pDC-&gt;SelectObject(&amp;a);

  return pBrush;
}
</code></pre>
<p>In der func Methode bekomme ich noch einen gültigen Wert für die Brush, allerdings in der Return Methode kommt mit dem return dann eine fehlerhalft brush zurück (0xcccc).<br />
Weiß jemand wieso das so ist, bzw. was muss ich machen, damit es funktioniert?</p>
<p>Vielen Dank, Lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/197849/cbrush-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Apr 2026 12:59:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/197849.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Nov 2007 13:17:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CBrush Problem on Thu, 15 Nov 2007 13:17:37 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe gerade ein komisches CBrush Problem und hoffe das vielleicht jemand hier einen Tipp hat <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>
<pre><code class="language-cpp">void draw(CDC * pDC)
{
  CBrush * pBrush = NULL;

  pBrush = func(pDC);

  // ...
}
</code></pre>
<p>Hier der schmatische Code. Warum ich das auslagern möchte aus der draw Methode ist weil die func methode eigentlich viel größer ist und es da eine auswahl über mehrere brushes geben soll.</p>
<pre><code class="language-cpp">CBrush * func(CDC * pDC)
{
  CBrush * pBrush = NULL;
  CBrush  a;
  a.CreateSolidBrush(RGB(255, 0,0));

  pBrush = pDC-&gt;SelectObject(&amp;a);

  return pBrush;
}
</code></pre>
<p>In der func Methode bekomme ich noch einen gültigen Wert für die Brush, allerdings in der Return Methode kommt mit dem return dann eine fehlerhalft brush zurück (0xcccc).<br />
Weiß jemand wieso das so ist, bzw. was muss ich machen, damit es funktioniert?</p>
<p>Vielen Dank, Lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403640</guid><dc:creator><![CDATA[Lara*]]></dc:creator><pubDate>Thu, 15 Nov 2007 13:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to CBrush Problem on Thu, 15 Nov 2007 13:24:04 GMT]]></title><description><![CDATA[<p>Du solltest vielleicht dafür sorgen, daß der erzeugte Brush so lange überlebt, wie du damit arbeiten willst - der &quot;CBrush a;&quot; ist lokal in der Funktion und wird direkt nach der return-Anweisung zerstört - allerdings arbeitest du danach fleißig mit der Adresse dieses (nicht mehr existierenden) Objekts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403647</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403647</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 15 Nov 2007 13:24:04 GMT</pubDate></item><item><title><![CDATA[Reply to CBrush Problem on Thu, 15 Nov 2007 13:26:50 GMT]]></title><description><![CDATA[<p>Es ist noch wirrer. Es wird ja der Rückgabewert von SelectObject zurückgegeben. Das ist der Brush, der vorher im DC selektiert war (für den dann aber wohl auch gilt, was CStoll gesagt hat).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403648</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403648</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 15 Nov 2007 13:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to CBrush Problem on Thu, 15 Nov 2007 13:31:35 GMT]]></title><description><![CDATA[<p>danke erstmal für die Antworten !</p>
<p>ganz genau weiß ich allerdings jetzt nicht was ihr meint.<br />
Soll ich ein neues Objekt für die Brush a anlegen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403652</guid><dc:creator><![CDATA[Lara*]]></dc:creator><pubDate>Thu, 15 Nov 2007 13:31:35 GMT</pubDate></item><item><title><![CDATA[Reply to CBrush Problem on Thu, 15 Nov 2007 13:36:15 GMT]]></title><description><![CDATA[<p>So ungefähr: Du solltest deinen Brush a an einer Stelle unterbringen, wo er das Ende der Funktion überleben kann. (zum Beispiel könntest du alle Brush's, die du verwenden willst, in der Klasse sammeln)</p>
<p>PS: Was hast du eigentlich mit dem zurückgegebenen Brush vor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403655</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 15 Nov 2007 13:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to CBrush Problem on Thu, 15 Nov 2007 13:50:57 GMT]]></title><description><![CDATA[<p>warum ich ihn zurück geben muss/will ist folgender:<br />
nach der Rückgabe zeichne ich mit dem DC noch diverse sachen und am Ende der Methode muss man ja anscheind folgendes machen</p>
<pre><code class="language-cpp">pDC-&gt;SelectObject(pBrush); // zurückgegebende Brush
</code></pre>
<p>für den Fall das ich zwischenzeitlich den DC verändert habe und/oder danach wieder mit der vorherigen BRush weiterzeichnen möchte.</p>
<p>Ich könnte natürlich auch alles in der einen Methode lassen (so wie es funktioniert), aber das macht die Methode einfach nur lang und übersichtlich, deshalb wollte ich das mit einer Extra Funktion lösen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1403664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1403664</guid><dc:creator><![CDATA[Lara*]]></dc:creator><pubDate>Thu, 15 Nov 2007 13:50:57 GMT</pubDate></item></channel></rss>