gpt4 book ai didi

c++ - 如何在 Windows 7 的 MFC 中区分 "Close All Windows"和 "Close"单个窗口?

转载 作者:行者123 更新时间:2023-11-30 04:05:10 24 4
gpt4 key购买 nike

我正在使用带有 MFC 和 Windows 7 的 Visual Studio 2005。我有一个包含许多对话框窗口的应用程序。

我使用 OnSysCommand 检查 SC_CLOSE 消息并检查 lParam 以确定这是从任务栏还是对话框上的关闭按钮启动的。但是,如何确定关闭消息是来自任务栏的“关闭所有窗口”还是仅来自任务栏的单个对话框?

谢谢

最佳答案

我认为您无法通过一条消息解决此问题。

当您关闭应用程序时,您还必须区分鼠标操作和 Alt+F4如果您使用 Alt+F4 关闭应用程序,该消息看起来与从任务栏关闭它一样(查看 lParam 值)

您可以查看使用 GetMessage 检索的最后一条消息(最后一条输入消息)。如果消息来自任务栏,则它是已发布的 WM_SYSCOMMAND。如果消息来自内部,您会收到 WM_SYSCOMMAND 作为 SendMessage。

您可以使用 AfxGetCurrentMessage 来确定最后输入的消息是什么。如果您在此处找到 WM_SYSCOMMAND,则关闭来自任务栏。如果您在此处找到键盘或鼠标消息,则该消息来自用户输入。

提示:使用 Spy++ 检查此行为。

关于c++ - 如何在 Windows 7 的 MFC 中区分 "Close All Windows"和 "Close"单个窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408190/

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