【问题标题】:What event is sent to a Windows Forms window when its button from the taskbar is clicked?单击任务栏上的按钮时,会向 Windows 窗体窗口发送什么事件?
【发布时间】:2010-05-14 15:29:07
【问题描述】:

当用户单击任务栏中的窗口标题/按钮时,会向窗口发送什么 .NET 事件(或 Windows API 消息)?

我正在使用 C#/.NET 2.0/Windows 窗体。

谢谢

【问题讨论】:

    标签: c# winforms events taskbar


    【解决方案1】:

    要发现在各个点发送到窗口的消息,您应该考虑使用 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

    【讨论】:

      【解决方案2】:

      Activated 和 Deactivate 事件通常在您单击任务栏按钮时发生,但并非总是如此。当您单击窗口或单击离开另一个窗口时,它们也会发生。

      我发现它们没有发生的一次是当窗口处于活动状态时,您单击任务栏按钮以最小化应用程序,并且 Deactivate 和 Activated 一样发生。然后,当您单击任务栏按钮以恢复窗口时,Activated 事件不会触发。这对我来说似乎很奇怪。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-19
        • 1970-01-01
        相关资源
        最近更新 更多