(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: Fenster Größe ändern ohne Border
31. Mai 2005, 19:27
eigentlich ganz einfach wenn man weiß wie:
Delphi-Quellcode:
procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;
[...]
procedure TSBMainForm.WMNCHitTest(var Msg: TWMNCHitTest);
begin
DefaultHandler(Msg);
with Msg do
// TOP
if PtInRect(Rect(0, 0, Width, 4), Point((XPos - Left), (YPos - Top))) then
RESULT := htTop
// LEFT
else if PtInRect(Rect(0, 0, 4, Height), Point((XPos - Left), (YPos - Top))) then
RESULT := htLeft
// BOTTOM
else if PtInRect(Rect(0, Height - 4, Width, Height), Point((XPos - Left), (YPos - Top))) then
RESULT := htBottom
// RIGHT
else if PtInRect(Rect((Width - 4), 0, Width, Height), Point((XPos - Left), (YPos - Top))) then
RESULT := htRight
// TOPLEFT
else if PtInRect(Rect(0, 0, 4, 4), Point((XPos - Left), (YPos - Top))) then
RESULT := htTopLeft
// TOPRIGHT
else if PtInRect(Rect((Width - 4), 0, Width, 4), Point((XPos - Left), (YPos - Top))) then
RESULT := htTopRight
//BOTTOMLEFT
else if PtInRect(Rect(0, (Height - 4), 4, Height), Point((XPos - Left), (YPos - Top))) then
RESULT := htBottomLeft
// BOTTOMRIGHT
else if PtInRect(Rect((Width - 4), (Height - 4), Width, Height), Point((XPos - Left), (YPos - Top))) then
RESULT := htBottomRight
// Bewegen ohne Titlebar
//else if RESULT = HTCLIENT then
// RESULT := htCaption
else
inherited;
end;
die 4 steht für den Bereich in welchem das ganze anfassbar ist zum strecken. Das diagonale Strecken ist allerdings hier noch nicht drinn, ist aber einfach zu erweitern..
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|