Delphi中讓窗口關閉按鈕無效的6種方法

1、 
procedure TForm1.WMInit(var msg: TWMInitMenuPOPUP); 
begin 
inherited; 
EnableMenuItem(msg.MenuPopup ,sc_Close,MF_BYCOMMAND or MF_GRAYED) 
end;

procedure TForm1.FormCreate(Sender: TObject); 
begin 
PostMessage(handle, WM_INITMENUPOPUP, GetSystemMenu(handle, false), 0); 
end;


2、 
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
Action := CaNone; 
end;


3、 
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
begin 
CanClose:=false; 
end;


4、 
bordericons的bisystemmenu:=false;

5、 
TForm1 = class(TForm) 
private 
procedure Sys(var msg: TMessage);message WM_SYSCOMMAND; 
public 
{ Public declarations } 
end;

procedure TForm1.Sys(var msg: TMessage); 
begin 
if msg.WParam = SC_CLOSE then 
msg.Result := 1; 
end;


6、 
procedure WMInit(var msg: TWMInitMenu);message WM_INITMENU;

procedure TForm1.WMInit(var msg: TWMInitMenu); 
begin 
inherited; 
EnableMenuItem(msg.Menu,sc_Close,MF_BYCOMMAND or MF_GRAYED) 
end;

procedure TForm1.FormCreate(Sender: TObject); 
begin 
PostMessage(handle, WM_INITMENU, GetSystemMenu(handle, false), 0); 
end; 

發佈了74 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章