Autor Beitrag
Calyptus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Mo 20.12.04 19:00 
Ich möchte auf dem 'Hintergrundbild' malen. Bis jetzt hab ich das damit gemacht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
 a, b:integer;
 ca:Tcanvas;
begin
  ca:=TCanvas.Create;
  bla := TBitmap.Create;
  bla.LoadFromFile('C:\bild.bmp');
  ca.Handle:=GetDC(0);
  ca.Draw(a, b, bla);
  ca.Free;
end;


Damit wird aber auch auf das Aktive Fenster und auf die Symbole gemalt. Ich möchte aber wirklich nur auf das Hintergrundbild. Ich kann aber auch nicht auf ein Bild malen und das dann als Hintergrundbild übernehmen, da dies viel zu lang geht. Die Grafiken bewegen sich, also werden alle 0.05s neu gezeichnet...

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
Marlem
Hält's aus hier
Beiträge: 6


D5 Prof.
BeitragVerfasst: Mo 20.12.04 19:44 
was heißt Hintergrund?
hintegrund von was?
zum beispiel kann man auch auf dem canvas einer Form zeichnen!
Form1.canvas.draw....
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mo 20.12.04 19:46 
Er meint wahrscheinlich den Desktop (GetDC(0)). Warum willst du ein Bild auf den Desktop malen :roll: ?

AXMD
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Mo 20.12.04 22:59 
AXMD hat folgendes geschrieben:
Er meint wahrscheinlich den Desktop (GetDC(0)).


Jop.

Zitat:
Warum willst du ein Bild auf den Desktop malen


Ich will es (passend zu der schönen Winterzeit) schneien lassen. Das geht auch schon alles, aber es wird halt alles überzeichnet. Und ich möchte wirklich nur auf dem 'Hintergrundbild' (wie oben schon gesagt) also weder auf den Symbolen, der Taskleiste oder anderen aktiven Fenstern malen.

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mo 20.12.04 23:01 
So einen Thread hatten wir schon mal... Klick (ganz nützliches Tool ;))

AXMD
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Mo 20.12.04 23:34 
Na danke. auf die idee bin ich auch schon gekommen.....
Aber sag mir mal bitte nach was ich da suchen soll. unter 'desktop' find ich nix passendes.....

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Fr 24.12.04 00:37 
Hey... kann mir niemand helfen? Ich find wirklich nix... Sagt mir wenigstens nach was ich suchen soll

Danke!

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
Calyptus Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Do 27.09.07 21:20 
jetzt ist es leider sogar ein doppelter-push-post, aber es ist ja seit dem Letzten auch einige Zeit vergangen^^
Ich stehe jetzt aber wieder vor der gleichen Frage und wollte keinen mehr oder weniger identischen Post aufmachen.

Hier nochmal der Versuch zu beschrieben, um was es geht:

Ich möchte auf den Desktophintergrund zeichnen. Also noch hinter den Symbolen, aber vor dem Hintergrundbild. Ist nicht ganz professionell ausgedrückt, aber ich weiß nicht wie ich es anders beschrieben soll.

Im Anhang noch ein Bild wie ich es mir vorstelle.
Einloggen, um Attachments anzusehen!
_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Fr 28.09.07 07:41 
Schau dir mal das Program von andreas jönsson an. Der macht genau das. Allerdings ist der Code C++ bzw benutzt im original auch hooks. Aber es gibt auch eine modifizierte Version die keine Hooks benötigt.

Das interessanteste ist wohl eher diese Pasage.
ausblenden Quelltext
1:
2:
3:
4:
// Find the desktop window
HWND hProgMan  = FindWindow("ProgMan", NULL);  
HWND hShellDef = FindWindowEx(hProgMan, NULL, "SHELLDLL_DefView", NULL);
hDesktopWnd    = FindWindowEx(hShellDef, NULL, "SysListView32", NULL);

Mit anderen Worten es wird nicht direkt auf das DesktopWindow geschrieben sondern auf ein Unterfenster davon.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.