【发布时间】:2010-05-14 15:29:07
【问题描述】:
当用户单击任务栏中的窗口标题/按钮时,会向窗口发送什么 .NET 事件(或 Windows API 消息)?
我正在使用 C#/.NET 2.0/Windows 窗体。
谢谢
【问题讨论】:
标签: c# winforms events taskbar
当用户单击任务栏中的窗口标题/按钮时,会向窗口发送什么 .NET 事件(或 Windows API 消息)?
我正在使用 C#/.NET 2.0/Windows 窗体。
谢谢
【问题讨论】:
标签: c# winforms events taskbar
要发现在各个点发送到窗口的消息,您应该考虑使用 Microsoft Spy++。在我的机器上,它位于以下路径
"D:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\spyxx.exe"
注意我使用的是 64 位操作系统,因此是 (x86)。
消息的类型和数量相当大,我确信在 XP 和 Windows 7 等操作系统版本之间略有不同。但是关键事件/消息可能会保持不变。
WM_ACTIVATE(激活和停用时) WM_WINDOWPOSCHANGING WM_WINDOWPOSCHANGED 等等
另一个不错的工具是 ManagedSpy,但我没有在 XP 以外的任何东西上尝试过它,它似乎无法在 Windows 7 64 位上运行,但我没有做太多调查(还!)。 http://msdn.microsoft.com/en-us/magazine/cc163617.aspx
【讨论】:
Activated 和 Deactivate 事件通常在您单击任务栏按钮时发生,但并非总是如此。当您单击窗口或单击离开另一个窗口时,它们也会发生。
我发现它们没有发生的一次是当窗口处于活动状态时,您单击任务栏按钮以最小化应用程序,并且 Deactivate 和 Activated 一样发生。然后,当您单击任务栏按钮以恢复窗口时,Activated 事件不会触发。这对我来说似乎很奇怪。
【讨论】: