OnClose() OnOK() OnCancel()(转)

  点“确定”后的关闭路由:OnOK()---> UpdateData(TRUE) ---> EndDialog() ---> DestroyWindow() ---> OnDestroy() ---> PostNcDestroy() 

  点“取消”后的关闭路由:OnCancel() ---> EndDialog() ---> DestroyWindow() ---> OnDestroy() ---> PostNcDestroy()

  点“关闭[X]”后的关闭路由:OnClose()---> DestroyWindow() ---> OnDestroy() ---> PostNcDestroy()

  

  在单视图程序中,根据《深入浅出MFC》介绍,程序退出时执行的操作顺序为(从点[X]按钮开始)

  (1)点击[X]关闭按钮,发送了WM_CLOSE消息----->响应OnClose()
  (2)在OnClose()中,调用DestroyWindow()----->销毁与指定CWnd窗口对象关联的窗口,但未销毁CWnd对象
  (3)在DestroyWindow()中发送了WM_DESTROY消息----->窗口销毁后响应OnDestroy()
  (4)在WM_DESTROY消息中调用PostQuitMessage(),发送WM_QUIT消息,结束消息循环

原文地址:https://www.cnblogs.com/pure/p/2105250.html