程序推出去时,相关的消息有WM_CLOSE、WM_DESTROY、WM_QUIT,其消息到达的先后顺序是怎样的呢
一、应用程序最先受到的是WM_CLOSE,若想让用户确认是否退出,则在应用程序的消息处理函数中拦截此消息做相应的处理;否则,将该消息抛个DefWindowProc处理,该函数会调用DestroyWindow来处理WM_CLOSE;
二、DestroyWindow在处理WM_CLOSE时,会发送一个WM_DESTROY,我们需要在消息处理函数中相应WM_DESTROY如下:
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
三、调用PostQuitMessage会是windows把WM_QUIT放入消息队列中
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
GetMessage从消息队列中取出WM_QUIT时,返回值为0,即推出消息循环,应用程序结束