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