2012-03-22 104 views
3

我发现有几篇文章告诉我如何使用WM_CLOSE消息,但从来没有我的应用程序是谁必须处理WM_CLOSE消息。处理WM_CLOSE消息发送到C#托盘应用程序

有没有办法挂钩WM_CLOSE并处理它?因为WM_CLOSE仅关闭托盘图标,但不会终止进程本身...

问候,

回答

5

要做到这一点,你需要重写的Form这是主要的托盘图标和处理WM_CLOSEWndProc方法

private const int WM_CLOSE = 0x0010; 

protected override void WndProc(ref Message m) { 
    if (m.Msg == WM_CLOSE) { 
    // Close everything 
    } 
    base.WndProc(ref m); 
} 
+1

嘿贾里德,非常感谢,但这种方法不适合我,因为我使用更多的托盘中心方法编写托盘图标应用程序。我将使用自己的ApplicationContext,因此没有“真实”的表单。但是常见的ApplicationContext提供了一个名为“MainForm”的属性,我所需要做的就是处理Closing事件。 – inva 2012-03-23 07:25:17

相关问题