1. 重载MDIChild的WndProc方法,自己处理WM_SYSCOMMAND消息:
procedure Form1.WndProc(var msg: message);
begin
case msg.Message of
...
WM_SYSCOMMAND:
case wParam of
SC_MAXIMIZE://Do nothing
SC_MINIMIZE://Do nothing
end;
end;
...
end;2. 取得系统菜单句柄,然后逐一删除子菜单.
procedure Form1.WndProc(var msg: message);
begin
case msg.Message of
...
WM_SYSCOMMAND:
case wParam of
SC_MAXIMIZE://Do nothing
SC_MINIMIZE://Do nothing
end;
end;
...
end;2. 取得系统菜单句柄,然后逐一删除子菜单.
var
hSysMenu: HMENU;hSysMenu := GetSystemMenu( Form.Handle, FALSE );
EnableMenuItem( hSysMenu, 菜单项标识号, MF_BYCOMMAND or MF_GRAYED );
其中,菜单项标识号有:
SC_CLOSE - 关闭
SC_MAXIMIZE - 最大化
SC_MINIMIZE - 最小化
SC_MOVE - 移动
SC_SIZE - 改变大小
其它的命令请看WIN32 API帮助及MSDN:WM_SYSCOMMAND。
procedure WMNCHitTest(var Msg: TMessage); message WM_NCHITTEST;procedure WMNCHitTest(var Msg: TMessage);
begin
inherited;
Msg.Result := HTCLIENT;
end;