Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Bild an Handle - oder so ähnlich?! ;) (https://www.delphipraxis.net/41541-bild-handle-oder-so-aehnlich-%3B.html)

faux 4. Mär 2005 22:12


Bild an Handle - oder so ähnlich?! ;)
 
Hallo!

Ich habe gerade einen Bildschirmschoner Programmiert.
Alles funktioniert, außer die Preview (unter Anzeige, dort wo man die Bildschirmschonder im Windows einstellt).

Also das weiß ich:

Wenn die Preview angezeigt werden soll, öffnet Windows den Screensaver mit den Parametern /p und dann als 2. Parameter das Handle in dem die Preview erscheinen soll.

Bsp:
Code:
worklab.scr /p 7407874
Frage:
Wie kann ich jetzt dort wo die Preview sein soll ein Bild hinplazieren?

Danke schon mal....

sniper_w 4. Mär 2005 22:17

Re: Bild an Handle - oder so ähnlich?! ;)
 
Ich glaube das geht automatisch, dein Scr. wird im Preview ausgeführt (kleines Bildschirm)

NicoDE 4. Mär 2005 22:18

Re: Bild an Handle - oder so ähnlich?! ;)
 
Zitat:

Zitat von faux
Wie kann ich jetzt dort wo die Preview sein soll ein Bild hinplazieren?

Setze das Fenster (Parameter) als Parent deiner Vorschau.

faux 4. Mär 2005 22:42

Re: Bild an Handle - oder so ähnlich?! ;)
 
Hallo!

Das mit dem Parent is eine gute Idee....

Nur noch zwei Fragen:

1. Parent is doch vom Typ TWinControl, wie kann ich da ein HWND zuweisen?
2. Wie kann ich einen String einem HWND zuweisen?


Danke

Muetze1 4. Mär 2005 22:52

Re: Bild an Handle - oder so ähnlich?! ;)
 
Moin!

- Du bekommst ein WindowHandle
- Mit GetWindowDC() bekommst du ein/das DC dazu
- mit BitBlt() kannst du ein Preview Bitmap da raufmalen.

MfG
Muetze1

faux 5. Mär 2005 08:52

Re: Bild an Handle - oder so ähnlich?! ;)
 
Also ich hab das jetzt so gemacht und es zeigt nix an:

Delphi-Quellcode:
image := TImage.Create(Application);
image.Parent := Application.MainForm;
image.Picture.Bitmap.Handle := LoadBitmap(HInstance, 'LOGO');
preview := GetWindowDC(HWND(ParamStr(2)));
BitBlt(preview, 0, 0, 50, 50, image.Picture.Bitmap.Handle, 0, 0, SrcCopy);
image.Free;
Warscheinlich ist da jetzt ein Katastrophaler Fehler drinnen, aber ich kappier das Handle nicht so ganz.. ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz