为什么我的ApplicationEvent不能截获 我需要的消息 WM_CLOSE,WM_DESTROY,WM_QUIT等?

richi_ 2003-09-11 10:26:19
我需要在一个子窗口被用户close的时候,触发一段代码,但是我在主窗口中放置的ApplicationEvent不能截获子窗口Close的消息,连主窗口被Close它也不能截获,代码如下:
procedure TMainForm.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.message in [WM_CLOSE,WM_DESTROY,WM_QUIT] then
begin
//
end;
end;

请问是什么原因?
...全文
57 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxpbuaa 2003-09-11
  • 打赏
  • 举报
回复
这是肯定的了,因为这样关闭时并没有给应用程序或者该窗体发送WM_CLOSE消息。
如果你直接:
PostMessage(Handle , WM_CLOSE, 0 ,0 );或者:
PostMessage(Application.Handle , WM_CLOSE, 0 ,0 );
你将会发现你的ApplicationEvents1Message处理了该消息。

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————
FrameSniper 2003-09-11
  • 打赏
  • 举报
回复
直接在WndProc中进行捕获就可以了!

------------------------------------------------------------------------

TMD,严重抗议,CSDN怎么速度慢成这个鬼样!真让人感觉丢人!
FrameSniper 2003-09-11
  • 打赏
  • 举报
回复
直接在WndProc里面捕获消息就可以了啊!
duxin 2003-09-11
  • 打赏
  • 举报
回复
对于你的操作 你没有替换原来的消息队列 她怎么会运行?
duxin 2003-09-11
  • 打赏
  • 举报
回复

procedure tform1.xxxx(Msg:Tmessage)WM_SYSCOMMAND
然后在里面判断
if mag.wParam=SC_CLOSE then


5,392

社区成员

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

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