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

本文提供了几种禁用窗口关闭按钮的方法,包括使当前窗口、当前MDI子窗口及所有MDI子窗口的关闭按钮变灰的技术实现。通过Delphi代码实现了移除关闭按钮及其对应的系统菜单项。
问题来源: 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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值