Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
处理WM#U关闭消息发送到C#托盘应用程序_C#_.net - Fatal编程技术网

处理WM#U关闭消息发送到C#托盘应用程序

处理WM#U关闭消息发送到C#托盘应用程序,c#,.net,C#,.net,我发现有几篇文章告诉我如何使用WM_CLOSE消息,但我的应用程序是处理WM_CLOSE消息的应用程序 有没有办法将WM_连接起来并处理它?因为WM_CLOSE只关闭托盘图标,而不终止进程本身 关于,要执行此操作,您需要覆盖表单上的WndProc方法,该方法是主托盘图标和手柄WM\u CLOSE private const int WM_CLOSE = 0x0010; protected override void WndProc(ref Message m) { if (m.Msg ==

我发现有几篇文章告诉我如何使用WM_CLOSE消息,但我的应用程序是处理WM_CLOSE消息的应用程序

有没有办法将WM_连接起来并处理它?因为WM_CLOSE只关闭托盘图标,而不终止进程本身


关于,

要执行此操作,您需要覆盖
表单上的
WndProc
方法,该方法是主托盘图标和手柄
WM\u CLOSE

private const int WM_CLOSE = 0x0010;

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

嘿,Jared,非常感谢,但是这种方法对我不起作用,因为我在编写托盘图标应用程序时使用了更以托盘为中心的方法。我将使用自己的应用程序上下文,因此没有“真实”表单。但是通用的ApplicationContext提供了一个名为“MainForm”的属性,我所需要做的就是处理关闭事件。@inva你有没有做到这一点?如果我的主窗体有
ShowInTaskBar=false
,则窗口将永远不会收到关闭消息。