1、首先声明私有拦截消息的过程
//禁止调整窗体大小
procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
//禁止窗体移动
procedure WMSysCommand(var message:TWMSysCommand); message WM_SYSCOMMAND;
然后创建一下代码即可限制窗体大小且窗体不可移动。
2、过程实现代码如下:
procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo); //限制窗体大小消息
begin
inherited;
Msg.MinMaxInfo^.ptMinTrackSize := Point(192, 164); //窗口最小宽度,窗口最小高度
Msg.MinMaxInfo^.ptMaxTrackSize := Point(192, 164); // 窗口最大宽度,窗口最大高度
Msg.MinMaxInfo^.ptMaxPosition := Point(200,200); //窗口最大化时,左上角的位置
end;
procedure TForm1.WMSysCommand(var message: TWMSysCommand);
begin
with message do
begin
if (CmdType>=$F000)and(CmdType<$F013) then
CmdType:=0
else
inherited;
end;
end;