(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: Fenstergröße an eigenem Rahmen ändern...
7. Jul 2004, 20:44
vor einiger zeit hab ich die frage auch mal gestellt und hab folgendes erhalten:
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;
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|