This question already has an answer here:
What's the proper response to WM_ENDSESSION with ENDSESSION_CLOSEAPP and wParam == FALSE?
(1个答案)
3年前关闭。
我正在尝试了解WM_ENDSESSION通知。
我了解如果会话结束,它将设置为
(1个答案)
3年前关闭。
我正在尝试了解WM_ENDSESSION通知。
wParam
为0时会在什么情况下被调用?我了解如果会话结束,它将设置为
TRUE
。但是它还能做什么。 最佳答案
答案在您所链接的文档中:
帕拉姆
此参数可以是以下一个或多个值。如果此参数为0,则系统正在关闭或重新启动(无法确定正在发生哪个事件)。
ENDSESSION_CLOSEAPP
0x1
如果wParam为TRUE,则应用程序必须关闭。任何数据都应自动保存而不提示用户(有关更多信息,请参见“备注”)。当应用程序使用需要替换的文件,必须为系统提供服务或系统资源用尽时,重新启动管理器会发送此消息。如果应用程序已使用RegisterApplicationRestart函数注册为重新启动,则它将重新启动。有关更多信息,请参阅应用程序准则。
如果wParam为FALSE,则不应关闭该应用程序。
如果应用对WM_ENDSESSION
的响应为TRUE,则该应用将收到WM_QUERYENDSESSION
,以允许注销/关闭。
收到WM_ENDSESSION
时,如果lParam
是ENDSESSION_CLOSEAPP
,则wParam
可能为FALSE,表示注销/关机已被取消,并且该应用程序根本不需要退出。
关于c++ - 在什么时候调用wM_ENDSESSION且wParam为0? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38284832/
10-11 19:07