Fehler: StretchBlt()/StretchDIBits() Fehler mit Groß Strecken

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 111865 - Produkte anzeigen, auf die sich dieser Artikel bezieht
3.00 3.10 WINDOWS Kbprg Kbbuglist
Alles erweitern | Alles schließen

Problembeschreibung

Wenn Strecken Faktor groß ist, z. B. wenn aus einer sehr kleinen auf eine große Höhe Strecken kann StretchDIBits() und StretchBlt() 0 (null) zurück und nichts angezeigt. Die gleiche Bitmap mit kleineren Strecken wird korrekt angezeigt.

Ursache

Die meisten Grafikkarten implementiert eigene StretchBlt() oder StretchDIBits() nicht, GDI diese Aufrufe simulieren muss. Die GDI-Simulation gehört reservieren vorübergehende Puffern, die auf 64 KB beschränkt sind. Wenn die Größe des Puffers Arbeit größer als 64 KB berechnet wird, werden die Höhe der Quell- und Rechtecke halbiert, bis Sie weniger als 64 KB sind. Das Problem ist, wenn GDI, teilen die Höhe von zwei (2) zu einen Puffer kleiner als 64 KB fortsetzen muss, die Quelle oder Ziel Höhe schließlich einer Scanzeile erreichen konnte. Zu diesem Zeitpunkt schlägt der Aufruf fehl, da es Aufteilen einer Scanzeile in Untereinheiten dem Wert kann nicht.

StretchBlt() und StretchDIBits() dienen nicht unbegrenzt Strecken bereitstellen. Sie können jedoch etwas vorzeitig als Ihre entwurfsbedingte Einschränkung fehl.

Lösung

Wenn StretchBlt() oder StretchDIBits() auf einer großen Strecken fehlschlägt, kann eine Anwendung Quell-Bitmap zu teilen, die Teile einzeln Strecken und positionieren Sie Sie einmal korrekt gestreckt. Eine andere Alternative besteht darin, eine kleinere Strecken. Es gibt keine Formel ermitteln, genau wie Bitmaps an welche Strecken Größe fehl.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel Microsoft-Produkten handelt.

Weitere Informationen

Zum Reproduzieren des Problems erstellen Sie eine Bitmap etwa 2048 Pixel breit und 16 Pixel hoch. Die Bitmap mit dem Beispiel DIBVIEW aus dem Windows 3.1-SDK anschließend anzeigen. Wählen Sie Stretch an Fenster Menü Optionen des DIBVIEW, so dass die Bitmap entsprechend auf die Größe des Clientfensters gestreckt ist. Wenn die Höhe über mehr als 200 Pixel ist, wird die Bitmap nicht angezeigt.

Eigenschaften

Artikel-ID: 111865 - Geändert am: Montag, 7. März 2005 - Version: 2.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows Software Development Kit 3.0
  • Microsoft Windows Software Development Kit 3.1
Keywords: 
kbmt kbbug kbpending KB111865 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 111865
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com