(CodeLib-Manager)
Registriert seit: 10. Jun 2002
4.648 Beiträge
Delphi XE Professional
|
Re: Herausfinden, ob Fenster sichtbar ist
25. Sep 2008, 19:11
Hallo, dafür eignet sich die GetClipBox API.
Delphi-Quellcode:
type
TVisibleStatus = (vsHidden, vsVisible, vsPartVisible);
function TForm1.GetVisibleStatus(wnd: HWND): TVisibleStatus;
var
Clip: Integer;
hDC: THandle;
ClipRect, ClientRect: TRect;
begin
hDC := GetDC(wnd);
Clip := GetClipBox(hDC, ClipRect);
case Clip of
NULLREGION: Result := vsHidden; // Fenster ist komplett versteckt
SIMPLEREGION:
begin
ClientRect := GetClientRect;
if EqualRect(ClipRect, ClientRect) then // vollständig sichtbar
Result := vsVisible //ClientRect ist sichtbar
else //teils sichtbar
Result := vsPartVisible; //ClientRect ist sichtbar
end;
COMPLEXREGION: // Region besteht aus mehr als einem Rechteck, Fenster ist teils sichtbar
Result := vsPartVisible;
end;
ReleaseDC( Handle, hDC);
end;
Thomas
|
|
Zitat
|