gpt4 book ai didi

c++ - 如何区分终止程序的不同方式?

转载 作者:行者123 更新时间:2023-11-28 07:42:08 25 4
gpt4 key购买 nike

我正在使用 C++Builder 2007 为 Windows 编写程序。

当我的程序关闭时,它的行为应该根据关闭方式而有所不同:

  1. 用户单击应用程序窗口的“X”:返回到应用程序的用户登录。
  2. 程序通过 TaskManager 终止:当场终止程序。这一点尤其重要,因为该程序不得阻止 Windows 关闭。

获得一个或另一个很容易:实现一个 TForm::OnClose()OnCloseQuery() 来处理事件。但是,两者都没有告诉我是什么导致了事件发生。有没有其他方法可以知道究竟是什么导致了关闭事件?

最佳答案

您可以让您的主窗体监听 WM_SYSCOMMAND 消息。如果您收到此命令类型为 SC_CLOSE 的消息,那么您就知道用户单击了关闭按钮、按了 Alt+F4 或从系统菜单中选择了“关闭”。然后您可以做任何您喜欢的事情(而不是让默认操作关闭表单)。

例如,您可以再次显示登录对话框。

这不会影响关闭主窗体/应用程序的其他方式,因此您仍然可以从任务管理器中的(第一个选项卡)关闭应用程序。

[之前,这个 Q 被标记为 Delphi。因此,我的答案的第一个版本包含了这个想法的 Delphi 实现。]

关于c++ - 如何区分终止程序的不同方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com