屏蔽CTRL+F4 的方式关闭窗体, 解决立即给分,up有分!!!

mousecao 2003-08-22 03:47:56
我想屏蔽CTRL+F4的方式关闭窗体,
不知哪位高手能够帮助小弟解决一下,
小弟感激不尽!
先行谢过!
...全文
182 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongki 2003-08-27
  • 打赏
  • 举报
回复
楼上应该都说对了。你先别结合你的实际,自起照楼上的,做个实例先。
vchoushen6 2003-08-27
  • 打赏
  • 举报
回复
在APPLICATION.HookMainWindow吧做个钩子吧。
mrtxc 2003-08-27
  • 打赏
  • 举报
回复
有几问题问楼主:
1、下次提问时标题一定要正确,我刚才一看Ctrl+F4关窗口,我还以为你不用windows呢
2、窗口写在Timer中,不可能你的timer代码执行一次,就重建一次窗口吧???


按 lxpbuaa(桂枝香在故国晚秋) 兄的办法肯定能成的
ManagerMan 2003-08-27
  • 打赏
  • 举报
回复
在keyDown事件中屏蔽
IORILI 2003-08-27
  • 打赏
  • 举报
回复
放在timer里是什么意思??
gossan 2003-08-27
  • 打赏
  • 举报
回复
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
end;
mousecao 2003-08-27
  • 打赏
  • 举报
回复
lxpbuaa(桂枝香在故国晚秋) ,
“第一次显示”是这样的:

第一次显示窗体时,按ALT+F4照样可以关闭窗体。



不知为何?
bombplane 2003-08-27
  • 打赏
  • 举报
回复
再或者用:
DeleteMenu(systemMenu,SC_CLOSE,MF_BYCOMMAND);
bombplane 2003-08-27
  • 打赏
  • 举报
回复
附一句:
DeleteMenu(systemMenu,5,MF_BYPOSITION);
5是指系统菜单上关闭是在第五条,你应该自己去算一下。
bombplane 2003-08-27
  • 打赏
  • 举报
回复
可以这样做():
var
systemMenu : HMenu;
...
begin
systemMenu := GetSystemMenu(Form.Handle,False);
DeleteMenu(systemMenu,5,MF_BYPOSITION);
end;

这样就关不掉窗口了。
reallike 2003-08-27
  • 打赏
  • 举报
回复
看清楚啊,他写的是Ctrl + F4啊。
Dephiuser 2003-08-27
  • 打赏
  • 举报
回复
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssAlt in Shift) and (Key = VK_F4) then
Key := 0;
end;
lzbug 2003-08-27
  • 打赏
  • 举报
回复
DWGZ()的第二种方法可以实现屏蔽掉Alt+F4,只要照搬就可以了
肖义崇 2003-08-27
  • 打赏
  • 举报
回复
可以用
Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long,
ByVal lParam As Long) As Long
这个函数。来屏蔽Alt+F4
reallike 2003-08-27
  • 打赏
  • 举报
回复
我请问你到底是Ctrl + F4 还是Alt + F4
reallike 2003-08-27
  • 打赏
  • 举报
回复
楼顶的,你一直再说CTRL+F4啊。
lxpbuaa 2003-08-27
  • 打赏
  • 举报
回复
mousecao (mousecao) :
“设置窗体的KeyPreview=True

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssAlt in Shift) and (Key = VK_F4) then
Key := 0;
end;

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————


ft
mousecao 2003-08-27
  • 打赏
  • 举报
回复
我现在新建了一个新的project
只有一个form
也只有如下的代码:
//------------------------------------------------------------
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssAlt in Shift) and (Key = VK_F4) then
Key := 0;
end;
//------------------------------------------------------------
可惜我一按ALT+F4
还是将窗体给关了!实在是没办法!!


lxpbuaa 2003-08-22
  • 打赏
  • 举报
回复
fuyifan(程序执著者)(▲▲) :
这么个问题还要用HOOK?

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
fuyifan 2003-08-22
  • 打赏
  • 举报
回复
用Hook试一试
加载更多回复(6)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧