Hi,
Hatte da mal ein Problem mit Resize und musste das manuell erledigen. Für die Interresierten:
Messages fangen:
Im FormCreate:
Application.OnMessage := OnMessageHandlingHook;
Wenn ein Klick auf den Rahmen erfolgt, dann lokalisieren auf welchen Teil und dann den gewünschten Resize Befehl abschicken. Konstanten sind in der Windows.pas zu finden.
Delphi-Quellcode:
procedure Tmainform.OnMessageHandlingHook(var Msg: TMsg; var Handled: Boolean);
var
Direction : Integer;
begin
Handled := False;
if (MSG.message = 161) then begin //WM_NCLBUTTONDOWN = 161
if (MSG.hwnd = Mainform.Handle) then begin
if ((MSG.wParam = 8) or (MSG.wParam = 9) or (MSG.wParam = 20)) then
Handled:=true
else begin
Direction := -1;
case MSG.wParam of
HTLEFT : Direction := WMSZ_LEFT;
HTRIGHT : Direction := WMSZ_RIGHT;
HTTOP : Direction := WMSZ_TOP;
HTBOTTOM : Direction := WMSZ_BOTTOM;
HTTOPLEFT : Direction := WMSZ_TOPLEFT;
HTTOPRIGHT : Direction := WMSZ_TOPRIGHT;
HTBOTTOMLEFT : Direction := WMSZ_BOTTOMLEFT;
HTBOTTOMRIGHT : Direction := WMSZ_BOTTOMRIGHT;
end;
if Direction <> -1 then begin
ReleaseCapture;
DefWindowProc(mainform.Handle,WM_SYSCOMMAND,SC_SIZE+Direction,0);
Handled:=true;
end;
end;
end;
end;
end;
Grüße!