<?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[OnPaint zeichnet zu spät]]></title><description><![CDATA[<p>hallo zusammen.</p>
<p>habe folgendes Problem:<br />
ich habe auf meinem dialog einige CStatic Steuerelemente, die jeweils eine bestimmte Pokerkarte hineinzeichnen.<br />
habe daher CStatic abgeleitet und die OnPaint Methode überschrieben und an meine Bedürfnisse angepasst.<br />
Das klappt auch alles soweit.. die karte verschwindet nicht, wenn ich den dialog minimiere oder ähnliches.<br />
bewege ich den dialog jedoch an den linken bildschirmrand, sodass der Static-Bereich komplett verschwindet und fahre den Dialog zurück in die Mitte, ist erstmal kein Bild mehr zu sehen, solange der linkeste Pixel-Punkt nicht wieder in den Sichtbaren Bereich des Bildschirmes zu sehen ist, angezeigt wird .</p>
<p>hoffe mir kann einer helfen, dass das Bild schon wenn der rechteste Pixelpunkt zu sehen ist.</p>
<pre><code class="language-cpp">void CStaticEXT::OnPaint()
{

	CClientDC m_pWindowDC(this);

	if(m_bLoadBMPfirst)
	{
		m_bmp.LoadBitmap(IDB_PLAYCARDS);
		m_bmp.GetBitmap(&amp;m_bmpInfo);	

		m_dcMemory.CreateCompatibleDC (&amp;m_pWindowDC);
		m_dcMemory.SelectObject (&amp;m_bmp); 	
		m_bLoadBMPfirst = false;
	}

	int width = 72;
	int height = 97;

	int relx = width * 1;
	int rely = height * 1;

	//m_pWindowDC.BitBlt(10,10,72,97,&amp;m_dcMemory,1,1,SRCCOPY);

	SetStretchBltMode( m_pWindowDC, HALFTONE);
	SetBrushOrgEx(m_pWindowDC,25,100,NULL);

	m_pWindowDC.StretchBlt(0,0,relx,rely,&amp;m_dcMemory,1,1,width,height,SRCCOPY);
	CStatic::OnPaint();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/192755/onpaint-zeichnet-zu-spät</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 14:02:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192755.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Sep 2007 11:58:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OnPaint zeichnet zu spät on Tue, 18 Sep 2007 11:59:19 GMT]]></title><description><![CDATA[<p>hallo zusammen.</p>
<p>habe folgendes Problem:<br />
ich habe auf meinem dialog einige CStatic Steuerelemente, die jeweils eine bestimmte Pokerkarte hineinzeichnen.<br />
habe daher CStatic abgeleitet und die OnPaint Methode überschrieben und an meine Bedürfnisse angepasst.<br />
Das klappt auch alles soweit.. die karte verschwindet nicht, wenn ich den dialog minimiere oder ähnliches.<br />
bewege ich den dialog jedoch an den linken bildschirmrand, sodass der Static-Bereich komplett verschwindet und fahre den Dialog zurück in die Mitte, ist erstmal kein Bild mehr zu sehen, solange der linkeste Pixel-Punkt nicht wieder in den Sichtbaren Bereich des Bildschirmes zu sehen ist, angezeigt wird .</p>
<p>hoffe mir kann einer helfen, dass das Bild schon wenn der rechteste Pixelpunkt zu sehen ist.</p>
<pre><code class="language-cpp">void CStaticEXT::OnPaint()
{

	CClientDC m_pWindowDC(this);

	if(m_bLoadBMPfirst)
	{
		m_bmp.LoadBitmap(IDB_PLAYCARDS);
		m_bmp.GetBitmap(&amp;m_bmpInfo);	

		m_dcMemory.CreateCompatibleDC (&amp;m_pWindowDC);
		m_dcMemory.SelectObject (&amp;m_bmp); 	
		m_bLoadBMPfirst = false;
	}

	int width = 72;
	int height = 97;

	int relx = width * 1;
	int rely = height * 1;

	//m_pWindowDC.BitBlt(10,10,72,97,&amp;m_dcMemory,1,1,SRCCOPY);

	SetStretchBltMode( m_pWindowDC, HALFTONE);
	SetBrushOrgEx(m_pWindowDC,25,100,NULL);

	m_pWindowDC.StretchBlt(0,0,relx,rely,&amp;m_dcMemory,1,1,width,height,SRCCOPY);
	CStatic::OnPaint();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1367667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367667</guid><dc:creator><![CDATA[PhiberK]]></dc:creator><pubDate>Tue, 18 Sep 2007 11:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to OnPaint zeichnet zu spät on Tue, 18 Sep 2007 12:11:35 GMT]]></title><description><![CDATA[<p>habe das problem mittlerweile erkannt.</p>
<p>ich muss den Static-Bereich der Bildgröße anpassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367683</guid><dc:creator><![CDATA[PhiberK]]></dc:creator><pubDate>Tue, 18 Sep 2007 12:11:35 GMT</pubDate></item><item><title><![CDATA[Reply to OnPaint zeichnet zu spät on Tue, 18 Sep 2007 12:23:05 GMT]]></title><description><![CDATA[<p>Du machst zudem einen extremen Fehler: Du verwendest in OnPaint keinen CPaintDC! Du musst einen Paint DC verwenden, andernfalls werden die Bereiche für Windows nie aktualisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367690</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 18 Sep 2007 12:23:05 GMT</pubDate></item><item><title><![CDATA[Reply to OnPaint zeichnet zu spät on Tue, 18 Sep 2007 13:27:07 GMT]]></title><description><![CDATA[<p>du hast absolut recht.. danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1367762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1367762</guid><dc:creator><![CDATA[PhiberK]]></dc:creator><pubDate>Tue, 18 Sep 2007 13:27:07 GMT</pubDate></item></channel></rss>