Einzelnen Beitrag anzeigen

Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

Oberstes Fenster an der Stelle (X|Y) finden

  Alt 5. Jun 2007, 07:24
Hallo,

Ich habe das (imho eigentlich simple) Problem, dass ich ein Fenster an der Stelle X|Y finden will. Nun kommen allerdings 2 Umstände erschwerend hinzu:
1. Das ganze sollte sich nicht nur auf die Parent-Fenster beschränken (siehe WindowFromPoint) sondern ALLE Fenster beihnhalten.
2. Es sollte immer das vorderste genommen werden.

Den ersten Punkt scheine ich mit EnumWindows umgangen zu haben...
Nun scheitere ich jedoch daran mir den Z-Index zu holen.
Delphi-Quellcode:
function FindWindow(X, Y: Integer): HWND;
var H: HWND;
    Rec: TRect;
    AZ: Integer;
  function EnumProc(wnd: HWND; LParam: LPARAM): LongBool; stdcall;
  begin
    GetWindowRect(wnd,Rec);
    if (X>=Rec.Left) and (X<=Rec.Right) and (Y>=Rec.Top) and (Y<=Rec.Bottom) then
    begin
      H:=wnd;
    end;
    Result:=True;
  end;
begin
  EnumWindows(@EnumProc, 0);
  Result := H;
end;
Wie mache ich nun weiter?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat