退出按钮 和 OnDestory()有关问题

退出按钮 和 OnDestory()问题
有一个基于对话框的应用程序(给客户演示功能的Demo).

有[启动]和[关闭退出]等多个按钮(当然对话框上还有[X], 点击时, 也可以关闭窗口).

[启动]按钮中有一些上电, 开串口, 开线程等操作.
[关闭退出]按钮中有一些关电, 关串口, 关线程等操作.


当然OnDestroy()中也可以放关电, 关串口, 关线程等操作.
void CXXXXDlg::OnDestroy()
{
  关电, 关串口, 关线程等操作.
}


关电, 关串口, 关线程等操作, 是放在OnDestroy() 中好呢, 还是放在[关闭退出]按钮中好呢?

------解决方案--------------------
我是放在OnClose()里
The framework calls this member function as a signal that the CWnd or an application is to terminate. The default implementation calls DestroyWindow.
------解决方案--------------------
OnClose()
------解决方案--------------------
其实都是一样,毕竟都是要调用的。。。
------解决方案--------------------
都可以。

WM_CLOSE在窗口即将关闭时触发,此时窗口和控件尚未销毁。

如果退出时,还需要涉及到窗口或控件的操作,要在 WM_CLOSE中进行,
因为 WM_DESTORY 触发时,窗口已经销毁,是无法进行任何涉及到窗口或控件的操作了。


------解决方案--------------------
放在[关闭退出]按钮中

因为这层只和你的任务有关,和系统\再底层的无关
如果以后功能扩展的话不会有啥影响

当然,如果你只是这些功能,放哪儿都可以,只要能完成你的功能
------解决方案--------------------
如果你只是这些功能,放哪儿都可以,只要能完成你的功能
------解决方案--------------------
对于非模态窗口,其关闭过程如下:
OnClose()->OnCancel()->DestroyWindow()->OnDestroy()->OnNcDestroy()//仅表示时间先后

如果"关闭退出"按钮触发OnClose(),那放在哪儿都可以,否则还是放在OnDestroy()好些,