父窗口退出时向子窗口发送什么消息通知子窗口关闭?

解决方案 »

  1.   

    WM_CLOSE
      当用户关闭窗口时,系统会发送WM_CLOSE消息。如果派生类重新定义了OnClose函数,就可以完全控制关闭过程,可以将提醒用户存盘之类的工作放在这里完成。我们可以通过重载CDocument::SaveModified虚函数达到相同的目的。
    WM_QUERYENDSESSION
      从字面的意思看就可以看出,当用户退出Windows时,或者调用了ExitWindows 函数时。Windows会发送WM_QUERYENDSESSION消息给所有的正在运行的应用程序,由OnQueryEndSession消息映射函数对消息进行处理。在它之后应该是WM_ENDSESSION 消息。
    WM_DESTROY
      在Windows发送WM_CLOSE消息后,紧接着会发送WM_DESTROY消息,虽然窗口已经Close但实际上并没有完全清除,在任务管理器中还可以看见应用程序的进程(我想很多木马或病毒都是无窗口的程序,它们的做法是生成了已经活动状态的窗口但不显示出来),利用这个消息控制函数便可以对依赖于当前窗口存在的东西做清除工作,不过一定要注意,应该调用基类的OnDestroy函数,而不能在用户自己的视图的OnDestroy函数中终止窗口的析构过程,终止析构过程应该在OnClose函数中。
      

  2.   

    WM_DESTROY -窗口銷毀
    你可以再WndPro函數裡面去處理響應的操作!
      

  3.   

    我实际上是创建的非模态窗口,在OnClose中我使用DestroyWindow()可以销毁它,但当我直接关闭主窗口是就会有内存泄漏的情况出现。当我接收到WM_DESTROY消息后再调用DestroyWindow()就会出错
      

  4.   

    WM_CLOSE消息并没有发送到弹出的非模态窗口中