![]() |
BitBlt()
Hallo,
ich glaube schön langsam, dass ich alles verlerne... Diese Zeile Code eill einfach nicht funktionieren :(
Code:
Sowohl hWnd als auch hBmp sind gültige Werte. Es scheint aber so, als würde sich der DC ständig verändern. Wenn ich folgendes einbaue, dann bekomme ich fünf verschiedene Werte.
BitBlt(GetDC(hWnd), 222 + i * 25, 0, 17, 23, hBmp, 0, 0, SRCCOPY);
Code:
Könnte das daran liegen, dass ich per MCI gleichzeitig ein Audiofile abspiele?
[b]for[/b] i := 1 [b]to[/b] 5 [b]do[/b]
MessageBox(hWnd, PChar(IntToStr(GetDC(hWnd))), 'audiorec', 0); MfG, d3g |
Du treibst mit dem GetDC() dein Windows ganschön in den Speichermangel. Zu jedem GetDC muss auch ein ReleaseDC vorhanden sein!
BitBlt() arbeitet nicht mit Bitmap-Handles, sondern nur mit Geräte Kontexten (DC). Du musst einen Compatiblen DC erzeugen:
Code:
[b]var[/b]
dc: HDC; memDC: HDC; oldBmp: HBITMAP; [b]begin[/b] dc := GetDC(hWnd); [b]try[/b] memDC := CreateCompatibleDC(dc); [b]try[/b] oldBmp := SelectObject(memDC, hBmp); // Bitmap dem DC zuweisen BitBlt(dc, 222 + i * 25, 0, 17, 23, memDC, 0, 0, SRCCOPY); SelectObject(memDC, oldBmp); [b]finally[/b] DeleteDC(memDC); [b]end[/b]; [b]finally[/b] ReleaseDC(hWnd, dc); [b]end[/b]; [b]end[/b]; |
Es funktioniert! :D :D :D
Danke! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz