2012-03-22 85 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

相關問題