Entwickler-Ecke

Windows API - Minimierte Fenster nicht von Windows zeigen lassen


maxk - So 02.05.04 08:45
Titel: Minimierte Fenster nicht von Windows zeigen lassen
Hi,
ich habe schon wieder ein Problem mit meinem Desktopprojekt (vgl. Windows API\Shell_TrayIcon). Diesmal handelt es sich um minimierte Fenster. Die Fenster zu finden, die in meine Taskbar gehören ist nicht das Problem. Windows aber mitzuteilen, dass mein Programm sich um solche Fenster kümmert schon. Minimiert man ein Fenster kommt man zu folgendem Effekt:

// Edit: Bild entfernt

Das entsprechende Fenster mit ShowWindow(x,SW_HIDE) zu verstecken bringt nichts, da meine Taskbar es dann auch nicht mehr finden würde bzw. es mit Fenster durcheinanderbringen würde, die wirklich SW_Hide sind.

maxk

PS: Ich weiss, dass sich diese Frage irgendwie blöd anhört. Aber nach intensiver Suche in der Windows API, dachte ich mir ich Frage jemanden, der sich damit auskennt :D


maxk - So 02.05.04 18:27

Ich hab's erstmal so gemacht, dass ich das "Fenster" hinter meiner Taskbar verstecke. Wirklich gefallen tut mir diese Lösung aber nicht!

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure HideWnd(Hnd:THandle);
var P:WindowPlacement;
begin
 P.length:=SizeOf(WindowPlacement);
 GetWindowPlacement(Hnd,@P);
 if P.showCmd and SW_SHOWMINIMIZED <>0 then begin
  P.ptMinPosition:=Point(TaskbarForm.Left,TaskbarForm.Top);
  P.flags:=WPF_SETMINPOSITION;
  SetWindowPlacement(Hnd,@P);
 end;
end;