S smhe Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-06 #1 不想用户不小心关闭程序, 如ALT-F4, 关闭按钮.<br>但要保留最大化,最小化按钮<br><br>~v~ 我是一只小小鸟
E Expert Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-06 #2 在主窗体的onclose事件中写如下代码:<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> Action := caNone;<br>end
在主窗体的onclose事件中写如下代码:<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> Action := caNone;<br>end
张 张剑波 Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-06 #3 主窗体的closequery:<br>procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br>begin<br>canclose:=false;<br>end;
主窗体的closequery:<br>procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br>begin<br>canclose:=false;<br>end;
S smhe Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-06 #4 我如果希望close按钮变成灰色, 保留最大化,最小化按钮<br>而且只能通过自己的button才触发close事件<br>呢???<br><br>~v~<br><br>
E Expert Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-06 #5 全局变量:canclose:boolean;<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> if not canclose then<br> Action := caNone;<br>end;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> canclose:=true;<br> form1.Close;<br>end;
全局变量:canclose:boolean;<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> if not canclose then<br> Action := caNone;<br>end;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br> canclose:=true;<br> form1.Close;<br>end;
S smhe Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-06 #6 我如果希望close按钮变成灰色, 保留最大化,最小化按钮<br> ****<br>而且只能通过自己的button才触发close事件<br>呢???<br><br>~v~<br><br>
我如果希望close按钮变成灰色, 保留最大化,最小化按钮<br> ****<br>而且只能通过自己的button才触发close事件<br>呢???<br><br>~v~<br><br>
S smhe Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-06 #7 我见到别人vc 编的程序里面有的<br>是不是要调api呀?
M msnail Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-07 #8 你可以捕捉窗口关闭消息:<br>在你的form的private中定义:<br> procedure WMGetCloseInfo( var Message:TWMCLOSE ); message WM_CLOSE;<br>然后在此过程中判断是否是符合自定义的关闭操作,使用inherited方法就可以<br>正常关闭窗口了。
你可以捕捉窗口关闭消息:<br>在你的form的private中定义:<br> procedure WMGetCloseInfo( var Message:TWMCLOSE ); message WM_CLOSE;<br>然后在此过程中判断是否是符合自定义的关闭操作,使用inherited方法就可以<br>正常关闭窗口了。
C crystal Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-07 #9 MyMenu = GetSystemMenu(Me.hwnd,0) <br>'得到系统菜单的句柄,Me.hwnd表示当前窗体的句柄<br>RemoveMenu MyMenu, &HF060, MF_BYCOMMAND <br>'移去“关闭”菜单项,&HF060“关闭”菜单项的命令ID<br><br>一段VB的代码
MyMenu = GetSystemMenu(Me.hwnd,0) <br>'得到系统菜单的句柄,Me.hwnd表示当前窗体的句柄<br>RemoveMenu MyMenu, &HF060, MF_BYCOMMAND <br>'移去“关闭”菜单项,&HF060“关闭”菜单项的命令ID<br><br>一段VB的代码
J jingtao Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-11 #10 1:<br>使关闭按钮失效 <br>EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE,MF_BYCOMMAND or MF_GRAYED<br>2:<br>屏蔽ALT+F4<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> action:= canone<br>end;<br>或者<br>procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br>begin<br> CanClose:=false<br>end;<br>3:<br>private<br>procedure WMCLOSE(var Msg:TMessage);message WM_CLOSE;<br>procedure TForm1.WMCLOSE(var Msg:TMessage);<br>begin<br>if messagedlg('真的要关闭吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then<br>postquitmessage(wm_quit) {或用self.close}<br>else<br>application.Minimize;<br>end;<br>
1:<br>使关闭按钮失效 <br>EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE,MF_BYCOMMAND or MF_GRAYED<br>2:<br>屏蔽ALT+F4<br>procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> action:= canone<br>end;<br>或者<br>procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);<br>begin<br> CanClose:=false<br>end;<br>3:<br>private<br>procedure WMCLOSE(var Msg:TMessage);message WM_CLOSE;<br>procedure TForm1.WMCLOSE(var Msg:TMessage);<br>begin<br>if messagedlg('真的要关闭吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then<br>postquitmessage(wm_quit) {或用self.close}<br>else<br>application.Minimize;<br>end;<br>
花 花花公子 Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-17 #13 我知道在VC里面可以控制消息的!其实只要当发现应用程序出现WM_QUIT时删掉就可以了!<br>例如在应用程序类里面处理:<br> CWinApp:reTranslateMessage()就可以了!我想DELPHI中也可以吧1
我知道在VC里面可以控制消息的!其实只要当发现应用程序出现WM_QUIT时删掉就可以了!<br>例如在应用程序类里面处理:<br> CWinApp:reTranslateMessage()就可以了!我想DELPHI中也可以吧1
W wjiachun Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-17 #16 问:我如果希望close按钮变成灰色, 保留最大化,最小化按钮<br><br>答:<br>在窗口的onshow中加入<br>procedure TForm1.FormShow(Sender: TObject);<br>begin<br> EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);<br>end;<br><br>灌一桶,不要给我分数,结束吧。<br>
问:我如果希望close按钮变成灰色, 保留最大化,最小化按钮<br><br>答:<br>在窗口的onshow中加入<br>procedure TForm1.FormShow(Sender: TObject);<br>begin<br> EnableMenuItem(GetSystemMenu(Handle, FALSE), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);<br>end;<br><br>灌一桶,不要给我分数,结束吧。<br>
L lucksc Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-25 #18 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> Action := caNone;<br>end
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);<br>begin<br> Action := caNone;<br>end
E eyes4 Unregistered / Unconfirmed GUEST, unregistred user! 2000-11-25 #19 让关闭钮失效什么的,不能防止用ctrl+alt+del来关闭进程.<br>可再屏蔽ctrl+alt+del,方法以前的回答中有.但这会影响系统,带来不便,为解决这个<br>问题,可再写一个程序,后台执行,不在桌面上显示图标,也不在结束任务对话框中出现,<br>(关于这些已答问题中已有),当检测到这个程序关闭后,就自动打开它.
让关闭钮失效什么的,不能防止用ctrl+alt+del来关闭进程.<br>可再屏蔽ctrl+alt+del,方法以前的回答中有.但这会影响系统,带来不便,为解决这个<br>问题,可再写一个程序,后台执行,不在桌面上显示图标,也不在结束任务对话框中出现,<br>(关于这些已答问题中已有),当检测到这个程序关闭后,就自动打开它.