Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Form - TPanel (Disabled) -> WM_LBUTTONDOWN

  Alt 13. Mai 2011, 10:10
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
Frank Reim
  Mit Zitat antworten Zitat