<?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[Problem mit StretchDIBits]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab ein seltsames Phanomän mit der Funktion StretchDIBits. Von heute auf morgen<br />
(so die Aussage des Bedieners) wurden die Bilder nur noch im Sekunden Takt<br />
aktualisiert und nicht wie zuvor mehrmals pro Sekunde (auch im Taskmanager ist<br />
auf einmal eine Systemauslastung von 100% zu beobachten). Ich habs das getestet,<br />
und es ist wirklich an einem Rechner zu beobachten wie das System in die Knie<br />
geht.Auf allen anderen läuft die identische Software einwandfrei. Hab da<br />
testweise die Funktion SetDIBitsToDevice genutzt und mit dieser wird das Bild<br />
wieder in der richtigen Frequenz aktuallisiert, nur eben nicht angepasst.</p>
<p>Kann mir einer weiterhelfen? Ich bin mit meinem Latein am ende.</p>
<p>Hier der entscheidende Auschnitte vom Code:</p>
<pre><code class="language-cpp">int nLines = 0;
	if ((m_lpBMIH == NULL) || (hDC  == NULL))
		return FALSE;

	if (fStretch)
	{
		//100% Systemauslastung
		SetStretchBltMode (hDC, COLORONCOLOR);

		nLines = StretchDIBits (hDC, startPos.x, startPos.y, size.cx, size.cy,
									0, 0, m_nSizeX, m_nSizeY,
									m_lpImage, (LPBITMAPINFO) m_lpBMIH, 
									DIB_RGB_COLORS, SRCCOPY);

	}
	else
	{
		//Funktioniert!!
		nLines = SetDIBitsToDevice (hDC,                      // handle to the device
									startPos.x,               // XDest
									startPos.y,               // YDest
									m_nSizeX,                 // source rectangle width
									m_nSizeY,                 // source rectangle height
									0,                        // x-coordinate of lower-left corner of the source rect
									0,                        // y-coordinate of lower-left corner of the source rect
									0,                        // first scan line in array
									m_nSizeY,                 // number of scan lines
									m_lpImage,                // modified address of array with DIB bits
									(LPBITMAPINFO) m_lpBMIH,  // address of structure with bitmap info
									DIB_RGB_COLORS);          // RGB or palette indices

	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/158686/problem-mit-stretchdibits</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 01:02:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158686.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Sep 2006 14:57:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit StretchDIBits on Thu, 07 Sep 2006 14:57:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>hab ein seltsames Phanomän mit der Funktion StretchDIBits. Von heute auf morgen<br />
(so die Aussage des Bedieners) wurden die Bilder nur noch im Sekunden Takt<br />
aktualisiert und nicht wie zuvor mehrmals pro Sekunde (auch im Taskmanager ist<br />
auf einmal eine Systemauslastung von 100% zu beobachten). Ich habs das getestet,<br />
und es ist wirklich an einem Rechner zu beobachten wie das System in die Knie<br />
geht.Auf allen anderen läuft die identische Software einwandfrei. Hab da<br />
testweise die Funktion SetDIBitsToDevice genutzt und mit dieser wird das Bild<br />
wieder in der richtigen Frequenz aktuallisiert, nur eben nicht angepasst.</p>
<p>Kann mir einer weiterhelfen? Ich bin mit meinem Latein am ende.</p>
<p>Hier der entscheidende Auschnitte vom Code:</p>
<pre><code class="language-cpp">int nLines = 0;
	if ((m_lpBMIH == NULL) || (hDC  == NULL))
		return FALSE;

	if (fStretch)
	{
		//100% Systemauslastung
		SetStretchBltMode (hDC, COLORONCOLOR);

		nLines = StretchDIBits (hDC, startPos.x, startPos.y, size.cx, size.cy,
									0, 0, m_nSizeX, m_nSizeY,
									m_lpImage, (LPBITMAPINFO) m_lpBMIH, 
									DIB_RGB_COLORS, SRCCOPY);

	}
	else
	{
		//Funktioniert!!
		nLines = SetDIBitsToDevice (hDC,                      // handle to the device
									startPos.x,               // XDest
									startPos.y,               // YDest
									m_nSizeX,                 // source rectangle width
									m_nSizeY,                 // source rectangle height
									0,                        // x-coordinate of lower-left corner of the source rect
									0,                        // y-coordinate of lower-left corner of the source rect
									0,                        // first scan line in array
									m_nSizeY,                 // number of scan lines
									m_lpImage,                // modified address of array with DIB bits
									(LPBITMAPINFO) m_lpBMIH,  // address of structure with bitmap info
									DIB_RGB_COLORS);          // RGB or palette indices

	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1133125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133125</guid><dc:creator><![CDATA[charlie-ux]]></dc:creator><pubDate>Thu, 07 Sep 2006 14:57:58 GMT</pubDate></item></channel></rss>