C编程中阻止程序退出的方法

来源:互联网 发布:windows live安装失败 编辑:程序博客网 时间:2024/04/29 23:04

点击窗口X按钮后,程序收到WM_CLOSE消息,此处可以拦截程序的退出。如果不做任何操作,DefWindowProc将返回WM_DESTROY消息,之后发送WM_QUIT消息。

参考这篇:

WM_CLOSE、WM_DESTROY、WM_QUIT及各种消息投递函数详解


故在消息循环中做如下更改即可达到目的。

case WM_CLOSE:MessageBeep(0);if (IDYES==MessageBox(hwnd,TEXT("是否退出?"),TEXT("退出"),MB_YESNO|MB_ICONQUESTION)){break;//跳出switch,执行DefWindowProc,退出}else{return 0;//返回消息,不退出}case WM_DESTROY:PostQuitMessage(0);return 0 ;case WM_QUIT:return 0;}return DefWindowProc (hwnd, message, wParam, lParam);}


0 0