我要做到用按键结束单文档程序,于是我在CMainFrame类中写了一个方法结束程序
DestroyWindow();
exit(EXIT_SUCCESS);
PostQuitMessage(0);
AfxGetMainWnd()->SendMessage(WM_CLOSE);
上面几个都能成功结束主程序
但是TerminateProcess方法或是TerminateThread这个方法也应该能够结束主程序吧,但是就是不知道它们的参数怎么添加?
AfxGetApp()->ExitInstance();这个方法结束不了主程序
还有就是HANDLE 和 HWND这两个类型有什么区别啊?不都是句柄吗?
http://topic.csdn.net/t/20040331/17/2909628.html
HWND 是struct类型指针
AfxGetApp()->ExitInstance();是在主线程退出后执行。。
在DestroyWindow中, 销毁窗口, 以及与之关联的资源, 并发送WM_DESTROY和WM_NCDESTROY消息
你可以在OnDestroy和OnNCDestroy中进行一些自己的清理工作
OnDestroy的默认实现中, 会调用PostQuitMessage, 该函数的功能是向消息队列中放一个WM_QUIT消息,
当主线程消息循环中GetMessage发现收到WM_QUIT时会退出消息循环。 导致WinMain函数返回,程序自然就结束了。至于ExitIntance函数, 那是mfc在程序退出消息循环后自动调用的, 是给你一个机会做程序的清理工作, 你自己直接调用当然是没有效果的。你去看看CWinThread::Run的代码, 就都清楚了。如果是基于对话框的程序, 就去看AfxWinMain函数的代码