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 Handle von Disableden Button (https://www.delphipraxis.net/105324-handle-von-disableden-button.html)

Masteric 19. Dez 2007 20:18


Handle von Disableden Button
 
Hi,
ich habe ein Problem, das leider dringend ist... habe den ganzen Tag probiert :( und es wollte nicht....

Undzwar soll ich das Handle von einem Enabled:=flase Button herausfinden. Also mit WindowFromPoint(mouse.CursorPos) bekomm ich die ziemlich gut von allen möglichen Klassen nur von einem dummen TButton der Enabled:=false ist natürlich nicht... da bekomm ich nur das Parent also das Form...


Weiss jemand wo der Fehler liegt??? :roll:

Helft mir bitte...

Gruß Masteric

chaosben 19. Dez 2007 20:21

Re: Handle von Disableden Button
 
Vielleicht ist der Button ja kein Window und hat damit kein Handle. (Eine Paintbox ist z.B. auch kein Window (und hat damit kein Handle) und man kann trotzdem die schönsten diableden Buttons drin zeichnen)

Probier mal WinDowse und guck nach, ob es überhaupt ein Window ist.

Masteric 19. Dez 2007 20:42

Re: Handle von Disableden Button
 
nene. das ist nen echter buttin, ich habe ja den source code und wenn ich den enabled:=true setze, kann ich auch sein handle ruasfinden, wenn er false ist nicht.... :(

Flocke 19. Dez 2007 20:53

Re: Handle von Disableden Button
 
Zitat:

Zitat von MSDN
The WindowFromPoint function does not retrieve a handle to a hidden or disabled window, even if the point is within the window. An application should use the ChildWindowFromPoint function for a nonrestrictive search.

Du solltest dir also mal die Funktion ChildWindowFromPoint ansehen...

Masteric 19. Dez 2007 22:20

Re: Handle von Disableden Button
 
leider gibt die function Childwindowfrompoint nur 0 als handle zurück...

Mache ich was falsch?? hier der Code

Delphi-Quellcode:
var wnd:hwnd;
begin
wnd:=WindowFromPoint(mouse.CursorPos);
Edit2.Text:=inttostr(ChildWindowFromPoint(wnd,mouse.CursorPos));
end;
Also ich hatte mir gedacht, da ich ja das Parent Handle brauche, nehme ich es einfach aus dem windowfrompoint, das bekomm ich bei einem test sogar, und wenn ich wnd:= dem parenthandle setze ohne es mit windowfrompoint zu holen, passiert auch nichts..

Was mache ich nur falsch :cry:


Gibt es eine Möglichkeit alle Childhandles eines Parenthandles aufzulisten?? Ich habe mal eine functionen bekommen mit der kann ich alle parenthandles finden, die momentan auf Windows laufen, vllt hilft mir das ja weiter


Gruß Masteric

bitsetter 19. Dez 2007 23:34

Re: Handle von Disableden Button
 
Hallo,

versuche es mal so:
Delphi-Quellcode:
var
  wnd:hwnd;
  pt: TPoint;
begin
  wnd:= WindowFromPoint(mouse.CursorPos);
  pt:= mouse.CursorPos;
  windows.ScreenToClient(wnd, pt);
  Edit2.Text:= inttostr(ChildWindowFromPoint(wnd, pt));

API 20. Dez 2007 04:20

Re: Handle von Disableden Button
 
Suche mal danach: Hier im Forum suchenRealWindowFromPoint

lbccaleb 20. Dez 2007 08:44

Re: Handle von Disableden Button
 
alternativ könntest du das handle auch mit findwindow und findwindowex herausfinden, das geht auf jeden fall, usst nur mal nach googeln oder in der hilfe zur winapi nachsehen!!!

mfg

Masteric 20. Dez 2007 08:46

Re: Handle von Disableden Button
 
Vielen Dank für eure Hilfe, Bitsetters Tip funzt wunderbar, den anderen habe ihc mir auch angeschaut.

Gruß Masteric


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