<?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[Hintergrundfarbe]]></title><description><![CDATA[<p>Ich hätte in meinem Fenster gerne eine andere Hintergrundfarbe (selbiges gilt wohl, wenn ich ein Hintergrundbild wöllte). Also habe ich einfach in C..View-&gt;OnEraseBkgnd(CDC*) ein großes Rechteck in der entsprechenden Farbe gezeichnet (bzw. würde ich hier das Hintergrundbild zeichnen). Leider wird diese Methode nicht aufgerufen. Beim Starten nicht (was ich eigentlich erwartet hätte) und beim Invalidate() auch nicht. Wann denn dann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160407/hintergrundfarbe</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 12:42:25 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160407.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Sep 2006 14:46:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hintergrundfarbe on Mon, 25 Sep 2006 14:47:28 GMT]]></title><description><![CDATA[<p>Ich hätte in meinem Fenster gerne eine andere Hintergrundfarbe (selbiges gilt wohl, wenn ich ein Hintergrundbild wöllte). Also habe ich einfach in C..View-&gt;OnEraseBkgnd(CDC*) ein großes Rechteck in der entsprechenden Farbe gezeichnet (bzw. würde ich hier das Hintergrundbild zeichnen). Leider wird diese Methode nicht aufgerufen. Beim Starten nicht (was ich eigentlich erwartet hätte) und beim Invalidate() auch nicht. Wann denn dann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144133</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Mon, 25 Sep 2006 14:47:28 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe on Mon, 25 Sep 2006 18:13:05 GMT]]></title><description><![CDATA[<p>also bei mir läuft das ganz wunderbar</p>
<p>siehe als bsp:</p>
<pre><code class="language-cpp">BOOL CChildView::OnEraseBkgnd(CDC* pDC) 
{
	CRect rect;
	GetWindowRect(&amp;rect);

	CDC tdc;
	if(!BackBitmap.GetSafeHandle())
	{
		CPicture TempBackBitmap;
		if(m_Setup.BackBitmapPath.IsEmpty() == TRUE)
			TempBackBitmap.LoadBitmap(IDR_BackBitmap,&quot;jpg&quot;);
		else
			TempBackBitmap.LoadBitmap(m_Setup.BackBitmapPath);

		BackBitmap.CreateBitmap(rect.Width(),rect.Height());

		BITMAP BitMap;

		TempBackBitmap.GetBitmap(&amp;BitMap);

		if(BitMap.bmWidth &lt; rect.Width() || BitMap.bmHeight &lt; rect.Height())
			TempBackBitmap.DrawPicture(&amp;BackBitmap.GetDC(),rect,CPicture::Tiles);
		else
			TempBackBitmap.DrawPicture(&amp;BackBitmap.GetDC(),rect,CPicture::Stretch);
	}
	pDC-&gt;BitBlt(0,0,rect.Width(),rect.Height(),&amp;BackBitmap.GetDC(),0,0,SRCCOPY);

	return 1;
}
</code></pre>
<p>gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144257</guid><dc:creator><![CDATA[CTecS]]></dc:creator><pubDate>Mon, 25 Sep 2006 18:13:05 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe on Mon, 25 Sep 2006 20:57:09 GMT]]></title><description><![CDATA[<p>Hm, also standartmäßig wird ja die Funktion so erzeugt:</p>
<pre><code class="language-cpp">BOOL C..View::OnEraseBkgnd(CDC* pDC)
{
	return CView::OnEraseBkgnd(pDC);
}
</code></pre>
<p>Allem Anschein nach hat sie so false zurückgegeben und es ging deswegen nicht. Wenn ich einfach 1 zurückgeben, funktioniert es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144339</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144339</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Mon, 25 Sep 2006 20:57:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hintergrundfarbe on Tue, 26 Sep 2006 05:51:20 GMT]]></title><description><![CDATA[<p>Evolver schrieb:</p>
<blockquote>
<p>Hm, also standartmäßig wird ja die Funktion so erzeugt:</p>
<pre><code class="language-cpp">BOOL C..View::OnEraseBkgnd(CDC* pDC)
{
	return CView::OnEraseBkgnd(pDC);
}
</code></pre>
<p>Allem Anschein nach hat sie so false zurückgegeben und es ging deswegen nicht. Wenn ich einfach 1 zurückgeben, funktioniert es.</p>
</blockquote>
<p>Das ist so nicht ganz richtig, die gibt schon true zurück. Aber schau mal an was da gemacht wird. Wenn Du die überschreibst malst Du erst Dein Rechteck und rufst dann die Methode der Basisklasse auf. Die Basisklasse ist CView und alle CViews haben per default einen weißen Hintergrund. Somit wird Dein farbiges Rechteck damit wieder übermalt. Auf langsamen Rechnern müsste man ein leichtes Flackern sehen.<br />
Da der Rückgabewert der Funktion vom Typ BOOL ist siehts schöner aus wenn Du true zurückgibst, obwohls ja auch 1 ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1144401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1144401</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Tue, 26 Sep 2006 05:51:20 GMT</pubDate></item></channel></rss>