<?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[Komisches Problem mit COLORREF und GetGValue,GetRValue,GetBValue]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>in meinem aktuellen Programm wird in einer Methode ein Farbwert errechnet und als</p>
<pre><code class="language-cpp">COLORREF color = ......;
</code></pre>
<p>gespeichert und dann mittels</p>
<pre><code class="language-cpp">return color;
</code></pre>
<p>zurückgegeben;</p>
<p>Wenn ich nun den sourcecode ändere in :</p>
<pre><code class="language-cpp">int red=GetRValue(color);
int green=GetGValue(color);
int blue=GetBValue(color);
if (DEBUG){
	CString ausgabe;
	ausgabe.Format(&quot;%i%s%i%s%i%s%i%s%i&quot;,itranfer,&quot; / &quot;,jtranfer,&quot;    R &quot; ,red,&quot; G &quot;,green,&quot; B &quot;,blue);
	MessageBox(NULL, ausgabe, &quot;DEBUG: calcColor&quot;, MB_OK|MB_ICONERROR);
}
return color;
</code></pre>
<p>wird ein vollkommen anderer Farbwert zurückgegeben als normal. (z.B: ein helles Lila statt schwarz) Der Unterschied bezieht sich nicht nur auf das aussehen der Farbe sondern sie RGBwerte sind tatsächlich unterschiedlich.<br />
Wenn ich den Debugcode(zeile 1-8) erst in der übergeordneten Funktion auf den rückgabewert anwende, werden die korrekten RGBwerte ausgegeben.</p>
<p>Hat einer ne Ahnung an was das liegen könnte ? ich greife doch nur lesend auf die Farbe zu da dürfte sich doch nichts ändern oder?</p>
<p>S.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/181044/komisches-problem-mit-colorref-und-getgvalue-getrvalue-getbvalue</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 23:25:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/181044.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 May 2007 13:00:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Komisches Problem mit COLORREF und GetGValue,GetRValue,GetBValue on Wed, 09 May 2007 13:00:11 GMT]]></title><description><![CDATA[<p>Hallo alle zusammen,</p>
<p>in meinem aktuellen Programm wird in einer Methode ein Farbwert errechnet und als</p>
<pre><code class="language-cpp">COLORREF color = ......;
</code></pre>
<p>gespeichert und dann mittels</p>
<pre><code class="language-cpp">return color;
</code></pre>
<p>zurückgegeben;</p>
<p>Wenn ich nun den sourcecode ändere in :</p>
<pre><code class="language-cpp">int red=GetRValue(color);
int green=GetGValue(color);
int blue=GetBValue(color);
if (DEBUG){
	CString ausgabe;
	ausgabe.Format(&quot;%i%s%i%s%i%s%i%s%i&quot;,itranfer,&quot; / &quot;,jtranfer,&quot;    R &quot; ,red,&quot; G &quot;,green,&quot; B &quot;,blue);
	MessageBox(NULL, ausgabe, &quot;DEBUG: calcColor&quot;, MB_OK|MB_ICONERROR);
}
return color;
</code></pre>
<p>wird ein vollkommen anderer Farbwert zurückgegeben als normal. (z.B: ein helles Lila statt schwarz) Der Unterschied bezieht sich nicht nur auf das aussehen der Farbe sondern sie RGBwerte sind tatsächlich unterschiedlich.<br />
Wenn ich den Debugcode(zeile 1-8) erst in der übergeordneten Funktion auf den rückgabewert anwende, werden die korrekten RGBwerte ausgegeben.</p>
<p>Hat einer ne Ahnung an was das liegen könnte ? ich greife doch nur lesend auf die Farbe zu da dürfte sich doch nichts ändern oder?</p>
<p>S.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281604</guid><dc:creator><![CDATA[Bachtler]]></dc:creator><pubDate>Wed, 09 May 2007 13:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Problem mit COLORREF und GetGValue,GetRValue,GetBValue on Wed, 09 May 2007 19:50:01 GMT]]></title><description><![CDATA[<p>Ist der Rückgabewert auch aus</p>
<pre><code class="language-cpp">COLORREF color = RGB([rot], [grün], [blau]);
</code></pre>
<p>erzeugt?</p>
<p>Gruss, Gio</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281948</guid><dc:creator><![CDATA[Gio]]></dc:creator><pubDate>Wed, 09 May 2007 19:50:01 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Problem mit COLORREF und GetGValue,GetRValue,GetBValue on Thu, 10 May 2007 13:51:32 GMT]]></title><description><![CDATA[<p>der rückgabewert wird auf zwei verschiedene, durch ein Flag unterschiedene, Arten erzeugt:</p>
<p>entweder als:</p>
<pre><code class="language-cpp">color = RGB(H * 2.55, H * 2.55, H * 2.55);
</code></pre>
<p>oder als :</p>
<pre><code class="language-cpp">color=HSL_to_RGB(H / 100.0, S / 100.0, V / 100.0);
</code></pre>
<p>S.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282418</guid><dc:creator><![CDATA[Bachtler]]></dc:creator><pubDate>Thu, 10 May 2007 13:51:32 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Problem mit COLORREF und GetGValue,GetRValue,GetBValue on Thu, 10 May 2007 14:06:20 GMT]]></title><description><![CDATA[<p>Oh, dann versuch doch mal die einzelnen Werte nach int zu casten. RGB() ist nur ein Makro das sollte mit double geanu die Schwierigkeiten machen die Du beschreibst</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282427</guid><dc:creator><![CDATA[connan]]></dc:creator><pubDate>Thu, 10 May 2007 14:06:20 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Problem mit COLORREF und GetGValue,GetRValue,GetBValue on Thu, 10 May 2007 15:30:27 GMT]]></title><description><![CDATA[<p>ok ich habe es mal wie folgt gecastet:<br />
(Bei HSL_to_RGB hab ich es nicht gemacht, weil das eine von meinem Vorgänger geschriebene Funktion ist, die explizit Double werte erwartet.)</p>
<pre><code class="language-cpp">if(flag){
  color = RGB((int)H * 2.55, (int)H * 2.55,(int)H * 2.55);
}
else{
  color = HSL_to_RGB(H / 100.0, S / 100.0, V / 100.0);
}
</code></pre>
<p>War das so gemeint?</p>
<p>der Cast hat das problem wegen dem ich die Ausgabe überhaupt eingefügt habe, abgeschwächt. Was mich ein bisschen wundert weil das programm eigentlich nicht über den &quot;RGB&quot;-Ast läuft sondern über den &quot;HSL_to_RGB&quot;-Ast <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>Zum testen der Ausgabe hatte ich noch keine Zeit.</p>
<p>Ich hatte nämlich das folgende problem:<br />
es soll eine vielzahl von Messwerten in Farben umgewandelt werden.<br />
Selbst wenn ich S auf 0% und V auf 100% stelle wird einer der Werte hellgrün was eigentlich gar nicht sein dürfte, weil dann alles Graustufen sein müssten.<br />
Der einzige Unterschied ist der Messwert und sonst nix. Alle konstanten Werte ändern sich nicht gegenüber den korrekt verarbeiteten Daten. Division Durch NULL kommt auch nicht vor.</p>
<p>kann das irgendeine speicherunverträglichkeit sein? weil mit der Ausgabe wird der Fehler auch anders. ob besser kann ich leider nicht sagen weil ich die original farbe nicht kenne. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>S.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282490</guid><dc:creator><![CDATA[Bachtler]]></dc:creator><pubDate>Thu, 10 May 2007 15:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to Komisches Problem mit COLORREF und GetGValue,GetRValue,GetBValue on Fri, 11 May 2007 08:32:04 GMT]]></title><description><![CDATA[<p>Ok Danke An Alle.</p>
<p>Ich hab den Fehler inzwischen gefunden.<br />
Es war ein Rundungsproblem in der selbstgeschriebenen HSL_to_RGB.</p>
<p>Die Übergeb werte wurden vor der Übergabe skaliert sollten aber eigentlich erst nach der Übergabe ind er Funktion skaliert werden.</p>
<p>Jetzt gehts.</p>
<p>Falls jemand auch mal so eine Umwandlung machen will:<a href="http://www.flashbattle.de/forumv2/print.php?threadid=9611&amp;page=1&amp;sid=34910f19060dd9d3bb997e9ea828e3cc" rel="nofollow">http://www.flashbattle.de/forumv2/print.php?threadid=9611&amp;page=1&amp;sid=34910f19060dd9d3bb997e9ea828e3cc</a><br />
und dann nach HSL suchen. Die Funktion steht in einem der Code-Beispiele.<br />
Und haltet euch genau an den Code. Wenn ihr das &quot;H/=255.0;&quot; schon vor der Übergabe macht ,wird es euch so wie mir gehen.</p>
<p>S.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1282846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1282846</guid><dc:creator><![CDATA[Bachtler]]></dc:creator><pubDate>Fri, 11 May 2007 08:32:04 GMT</pubDate></item></channel></rss>