So gehts:
Delphi-Quellcode:
.
.
.
private
{ Private-Deklarationen }
procedure NCHIT(var Msg : TWMNCHITTEST); message WM_NCHITTEST;
.
.
.
Und dann die eigentliche Prozedur:
Delphi-Quellcode:
procedure TForm1.NCHIT(var Msg : TWMNCHITTEST);
var p : Tpoint;
const a = 9;
var r,u : integer;
begin
p.x := msg.XPos;
p.y := msg.YPos;
p := screentoclient(p);
msg.Result := HTCLIENT;
{-}
r := self.width - a;
u := self.height - a;
{-}
if p.x > r then msg.Result := HTRIGHT;
if p.y > u then msg.Result := HTBOTTOM;
if PtInRect(Rect(r,u,self.width,self.height),p) then msg.Result := HTBOTTOMRIGHT;
end;
Mit der Konstante a kann eingestellt werden, ab welchem Abstand des Cursors zum Rand vergrößert/verkleinert werden kann. In diesem Beispiel wird nur auf unten, rechts und die Ecke rechts-unten überprüft. Andere Seiten/Ecken gehen äquivalent. (ungetestet, sollte aber gehen)
P@Tti