使窗口(和 MDI 子窗口)的关闭按钮变灰的方法 - 回复 "梦想成真"

问题来源: 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;


 
   

你可能感兴趣的:(DI)