WM_PRINT - wie geht das?
-
Hallo,
ich habe ein Problem mit WM_PRINT.
Lt. MSDN sollte WM_PRINT einen "Screenshot" eines Fensters zurückgeben. Habe also folgenden Code verwendet:SendMessage(Form1->Handle, WM_PRINT, (LPARAM)Form1->Image1->Picture->Bitmap->Canvas->Handle, NULL);Allerdings funktioniert das komischerweise nicht.
Dann habe ich testweise ausprobiert:Form1->Perform(WM_PRINT, (LPARAM)Form1->Image1->Picture->Bitmap->Canvas->Handle, NULL);Aber auch das funktioniert nicht.

Kann mir jemand einen Hinweis geben, was ich da falsch mache? Das Bitmap vom Image1 ist bereits gefüllt, hat also auch schon Width und Height...
(Die Möglichkeit, einen Screenshot mittels BitBlt kenne ich, möchte ich allerdings nicht verwenden, da WM_PRINT angeblich um einiges schneller sein muss, und meine Anwendung sehr zeitkritisch ist...)
tschüss
Robert
-
Hallo,
hat sich erledigt, so funktionierts:
SendMessage(Form1->Handle, WM_PRINT, (LPARAM)Form1->Image1->Picture->Bitmap->Canvas->Handle, PRF_CHILDREN | PRF_CLIENT | PRF_ERASEBKGND | PRF_NONCLIENT | PRF_OWNED);Gruß,
Robert
-
Tja... das hat man davon, wenn man einfach bei den Parametern die man nicht kennt "NULL" übergibt (o;
-
Hehe... stimmt, funktioniert aber manchmal :p