问题来源: http://www.cnblogs.com/del/archive/2008/06/14/1221980.html#1225922
//这样就可以使当前窗口的关闭按钮变灰, 但系统菜单中会有一条多余的线 var h: HMENU; begin h := GetSystemMenu(Handle, False); DeleteMenu(h, SC_CLOSE, MF_BYCOMMAND); end; //这样也可以是当前窗口的关闭按钮变灰, 同时也去掉了分割线 var h: HMENU; begin h := GetSystemMenu(Handle, False); DeleteMenu(h, 6, MF_BYPOSITION); DeleteMenu(h, 5, MF_BYPOSITION); end; //这是使当前 MDI 子窗口关闭按钮变灰的方法(在 MDI 窗体对应的代码中使用) var h: HMENU; begin h := GetSystemMenu(ActiveMDIChild.Handle, False); DeleteMenu(h, 6, MF_BYPOSITION); DeleteMenu(h, 5, MF_BYPOSITION); end; //这是使所有 MDI 子窗口关闭按钮变灰的方法(在 MDI 窗体对应的代码中使用) var h: HMENU; i: Integer; begin for i := 0 to MDIChildCount - 1 do begin h := GetSystemMenu(MDIChildren[i].Handle, False); DeleteMenu(h, 6, MF_BYPOSITION); DeleteMenu(h, 5, MF_BYPOSITION); end; end;