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 herausfinden, ob ein normales Fenster (https://www.delphipraxis.net/93682-herausfinden-ob-ein-normales-fenster.html)

stoxx 9. Jun 2007 14:20


herausfinden, ob ein normales Fenster
 
mit WindowFromPoint bekommt man ein Handle, und das können auch Einzelteile der Taskleiste sein, wie bekomme ich jetzt heraus, ob ein Handle von einem normalen Fenster ist?
Dankeschön!

_frank_ 9. Jun 2007 15:19

Re: herausfinden, ob ein normales Fenster
 
kommt natürlich darauf an, was du unter "normal" verstehst...

aber ich denke das dürfte hilfreich sein:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Showmessage(inttostr(GetParent(handle)));
  Showmessage(SysErrorMessage(GetLastError));
end;
wie du siehst ist das Handle eines Delphi-Forms = 0, dürfte imho bei allen top-level windows so sein.
was mich wundert ist der Abschnitt aus dem MSDN:
Zitat:

If the window is a top-level window, the return value is a handle to the owner window. If the window is a top-level unowned window or if the function fails, the return value is NULL.
demzufolge würde die funktion den owner zurückgeben (=application.handle), tut sie aber nicht...stattdessen bricht die funktion mit "Fenster hat keine Bildlaufleisten" ab ;)

HTH Frank

LizardKaiser 9. Jun 2007 18:52

Re: herausfinden, ob ein normales Fenster
 
Hey,

probiere doch aus ob

- GetParent 0 zurückgibt
- GetWindow mit GW_OWNER 0 zurückgibt

Grüße, Lizard

stoxx 9. Jun 2007 19:55

Re: herausfinden, ob ein normales Fenster
 
das ist leider keine Lösung.
Denn schon Delphi selber im Undocked Format hat kleine Fenster, die Getparent <> 0 liefern.
gibt es denn eine Windowsfunktion, die mir sagt, ob ein Fenster eine Titelleiste hat. damit man ein vorhandenes HAndle von Tabsheets unterscheiden kann?

_frank_ 9. Jun 2007 20:32

Re: herausfinden, ob ein normales Fenster
 
es ist bei "normalen" Fenstern ein parent definiert? ergibt für mich keinen sinn, außer es ist als MDI definiert...
mit der Titelleiste sollte sich mit Hier im Forum suchenGetWindowLong and GWL_Style machen lassen ;)


HTH Frank


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