我要做到用按键结束单文档程序,于是我在CMainFrame类中写了一个方法结束程序
DestroyWindow();
   exit(EXIT_SUCCESS);   
   PostQuitMessage(0);
   AfxGetMainWnd()->SendMessage(WM_CLOSE);
上面几个都能成功结束主程序
但是TerminateProcess方法或是TerminateThread这个方法也应该能够结束主程序吧,但是就是不知道它们的参数怎么添加?
AfxGetApp()->ExitInstance();这个方法结束不了主程序
还有就是HANDLE 和 HWND这两个类型有什么区别啊?不都是句柄吗?

解决方案 »

  1.   

    参考:
    http://topic.csdn.net/t/20040331/17/2909628.html
      

  2.   

    HANDLE void* 指针
    HWND 是struct类型指针
    AfxGetApp()->ExitInstance();是在主线程退出后执行。。
      

  3.   

    标准windows程序的退出方法, 是关闭主窗口, 这样发生一系列的动作:主窗口收到WM_CLOSE消息, 在此处会调用DestroyWindow
    在DestroyWindow中, 销毁窗口, 以及与之关联的资源, 并发送WM_DESTROY和WM_NCDESTROY消息
    你可以在OnDestroy和OnNCDestroy中进行一些自己的清理工作
    OnDestroy的默认实现中, 会调用PostQuitMessage, 该函数的功能是向消息队列中放一个WM_QUIT消息,
    当主线程消息循环中GetMessage发现收到WM_QUIT时会退出消息循环。 导致WinMain函数返回,程序自然就结束了。至于ExitIntance函数, 那是mfc在程序退出消息循环后自动调用的, 是给你一个机会做程序的清理工作, 你自己直接调用当然是没有效果的。你去看看CWinThread::Run的代码, 就都清楚了。如果是基于对话框的程序, 就去看AfxWinMain函数的代码