在开始菜单中点击关闭计算机!
任何一个窗体里有这么一段代码: private void main_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
就这么一句 e.Cancel = true; 计算机就关不了了! 但是其他的应用程序好像都退出了!
我想问下
windows 的关机消息是分别 传递给所有的应用程序(窗口过程)吗?
e.Cancel = true到底干了些什么! 是不是他返回了一个值 使windows关机消息 失效了!
那么 为什么所有其他的应用程序都退出了 ?
我一直以为一个window 消息只能传递给一个窗口过程!我错了吗》? 拜托了,谁可以告诉我 上面的问题。 谢谢大家了!
任何一个窗体里有这么一段代码: private void main_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
就这么一句 e.Cancel = true; 计算机就关不了了! 但是其他的应用程序好像都退出了!
我想问下
windows 的关机消息是分别 传递给所有的应用程序(窗口过程)吗?
e.Cancel = true到底干了些什么! 是不是他返回了一个值 使windows关机消息 失效了!
那么 为什么所有其他的应用程序都退出了 ?
我一直以为一个window 消息只能传递给一个窗口过程!我错了吗》? 拜托了,谁可以告诉我 上面的问题。 谢谢大家了!
关机的时候会提醒你是否保存,如果你点了取消就不会关机在Windows关机或注销的时候会给每个进程传送一个WM_QUERYENDSESSION消息,如果中间有的进程不能顺利的结束,这时该信息执行的结果将返回FALSE,这时Windows将不再继续向后面的进程发送WM_QUERYENDSESSION消息,只有所有的进程都可以顺利的结束,才代表顺利结束.
不管WM_QUERYENDSESSION消息最后是否可以顺利结束,Windows会再向所有的进程传送WM_ENDSESSION消息,而wParam的内容指出是否可以顺利结束如果返回FALSE则Windows将不会退出http://blog.csdn.net/qsdnet/archive/2007/02/26/1514815.aspx
追问一下:
基本上所有的标准窗口右上角都一个关闭程序(窗口)的按钮。
当我们点击这个关闭按钮》》 发什么什么:
操作系统 得到鼠标单击事件 再把他转换成消息 放到消息队列
消息被分配到 这个窗口。 窗口处理消息 。触发closeing 事件
这个时候 窗口是如何被关闭的 应用程序需要再跟操作系统做一下交互,任何操作系统再给窗口发送关闭指令(消息)吗? 还是这个时候 应用程序 就可以直接自己完成 退出了?