Entwickler-Ecke

Windows API - Fenster wird nicht mehr klein (bleibt immer im Hintergrund)


Christoph Englmann - Do 26.07.07 09:34
Titel: Fenster wird nicht mehr klein (bleibt immer im Hintergrund)
Hallo,

wollte meine Childfenster als eigene Komponenten in der Taskleiste erscheinen lassen, was auch funktioniert.
Nur leider kann ich die Hauptform nicht mehr klein machen (sie wird nicht in der Taskleiste sondern darüber abgelegt, bleibt aber zudem noch aufm Bildschirm offen (wird also nicht klein)).

Folgendes hab ich in der Hauptform implementiert:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
  
(deklariert unter public)
procedure TFormVTMap.CreateParams(var params :TcreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW and not WS_EX_TOOLWINDOW;
  Params.WndParent := 0;

end;


procedure TFormVTMap.FormCreate(Sender: TObject);

begin
  inherited;

  ShowWindow(Application.Handle, SW_HIDE);
  SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow(Application.Handle, SW_SHOW);



kann mir da jemand helfen?

danke
christoph


Moderiert von user profile iconGausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 26.07.2007 um 09:47


Gausi - Do 26.07.07 09:46

Das liegt an dem WS_EX_TOOLWINDOW. Diese Art von Fenster bleibt halt oben stecken und rutscht nicht ganz runter in die Taskleiste.


Christoph Englmann - Do 26.07.07 11:33

hallo,

danke, also das Fenster ist jetzt in der Taskleiste, nur leider verschwindet es immer no net (es bleibt immer noch am Bildschirm bestehen).


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TFormVTMap.CreateParams(var params :TcreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  Params.WndParent := 0;

end;


Gausi - Do 26.07.07 11:34

Klappts, wenn man ein AND NOT WS_EX_TOOLWINDOW mit reinpackt?


Christoph Englmann - Do 26.07.07 11:37

ne, leider net (das war ja im code, den ich am anfang gepostet habe mit drin ;-) )


Gausi - Do 26.07.07 11:40

Oh, stimmt ja. Dann lass mal das Params.ExStyle or weg. Wenns dann nicht klappt, hab ich keine Lust mehr weiterzuraten :mrgreen:.


Christoph Englmann - Do 26.07.07 12:13

habs ez mit


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TFormVTMap.CreateParams(var params :TcreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := WS_EX_APPWINDOW;
  Params.WndParent := 0;

end;


versucht (auch mal mit and not WS_EX_TOOLWINDOW dazu)...

leider ohne erfolg.. :-(