我正在使用C ++ Builder 2007为Windows编写程序。
当我的程序关闭时,它应该根据它的关闭方式而有所不同:
获取一个或另一个很容易:实施TForm::OnClose()
或OnCloseQuery()
来处理事件。但是,两者都没有告诉我导致事件的原因。还有另一种方法可以知道实际导致近似事件的原因吗?
答案 0 :(得分:1)
您可以将主表单lsiten改为WM_SYSCOMMAND
消息。如果您收到命令类型为SC_CLOSE
的此消息,则表示您已知道用户已单击关闭按钮,按Alt + F4或从系统菜单中选择“关闭”。然后你可以做任何你喜欢的事情(而不是让默认动作关闭表格)。
例如,您可以再次显示登录对话框。
这不会影响关闭主窗体/应用程序的其他方法,因此您仍然可以从任务管理器中的(第一个选项卡)关闭应用程序。
[此前,这个Q被标记为Delphi。因此,我的答案的第一个版本包含了这个想法的Delphi实现。]