Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Form - TPanel (Disabled) -> WM_LBUTTONDOWN (https://www.delphipraxis.net/160443-form-tpanel-disabled-wm_lbuttondown.html)

dataspider 13. Mai 2011 10:10

AW: Form - TPanel (Disabled) -> WM_LBUTTONDOWN
 
Zitat:

Zitat von Gruber_Hans_12345 (Beitrag 1100573)
Nun bekomme ich zwar den Klick mit, aber ich kann nicht mehr anfragen über welchen Kontroll sich die Maus befindet

Delphi-Quellcode:
Var
  AWinControl: TWinControl;
begin
  AWinControl := FindDisabledWinControl(Self, Mouse.CursorPos);
...

function FindDisabledWinControl(AControl: TWinControl; Pos: TPoint): TWinControl;
var
  AChildHandle: HWND;
  APrevChildHandle: HWND;
  APos: TPoint;
begin
  Result := nil;
  AChildHandle := 0;
  APrevChildHandle := AControl.Handle;
  APos := AControl.ScreenToClient(Pos);
  repeat
    if AChildHandle <> 0 then
      APrevChildHandle := AChildHandle;
    if(Result <> nil) then
      APos := Result.ScreenToClient(Pos);
    AChildHandle := ChildWindowFromPointEx(APrevChildHandle, APos, CWP_ALL);
    Result := FindControl(AChildHandle);
  until (AChildHandle = 0) or (AChildHandle = AControl.Handle) or
        (AChildHandle = APrevChildHandle);
  Result := FindControl(APrevChildHandle);
end;
Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz