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 Suche: IsTopLevel(HWND) (https://www.delphipraxis.net/176099-suche-istoplevel-hwnd.html)

blablab 12. Aug 2013 14:18

Suche: IsTopLevel(HWND)
 
Hallo!

Wie kann ich herausfinden ob ein bestimmtes Window ein Top-Level-Window ist?

Grüße
blablab

Edit1: Kann es sein, dass ein Window genau dann ein Top-Level-Window ist, wenn es ein direktes Child von DesktopWindow ist?
Edit2: Scheinbar nicht :)

DeddyH 12. Aug 2013 14:26

AW: Suche: IsTopLevel(HWND)
 
GetParent könnte ein erster Anlaufpunkt sein.

Der schöne Günther 12. Aug 2013 14:27

AW: Suche: IsTopLevel(HWND)
 
Mittels GetWindowLong kannst du dir die Extended Style-Eigenschaft holen und schauen ob
Delphi-Quellcode:
WS_EX_TOPMOST
passt :)

Uwe Raabe 12. Aug 2013 14:31

AW: Suche: IsTopLevel(HWND)
 
Delphi-Quellcode:
function IsTopLevel(Handle: HWND): Boolean;
var
  info: TWindowInfo;
begin
  info.cbSize := Sizeof(info);
  GetWindowInfo(Handle, info);
  result := ((info.dwStyle and WS_CHILD) = 0);
end;

uligerhardt 12. Aug 2013 14:35

AW: Suche: IsTopLevel(HWND)
 
Schau mal hier, vor allem die Tabelle. :mrgreen:

blablab 12. Aug 2013 15:01

AW: Suche: IsTopLevel(HWND)
 
Vielen Dank für die vielen Antworten!

Das heißt also ein Top-Level-Window hat kein Parent aber eventuell ein Owner. Theoretisch könnte ich also GetParent verwenden um herauszufinden ob es Top-Level ist aber leider gibt GetParent gelegentlich auch einfach den Owner statt Parent zurück. Also ist GetParent nicht empfehlenswert.
Außerdem haben nur Top-Level windows den Window-Style WS_CHILD nicht. Also sollte ich nach WS_CHILD gucken!?

Habe ich das richtig verstanden?

Kann ich dann statt
Delphi-Quellcode:
GetWindowInfo
auch
Delphi-Quellcode:
GetWindowLong
verwenden?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:48 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