程序窗口已关但进程依然在运行...

 应用程序通常用返回值来确定是否终止主消息循环并退出程序。

  GetMesssge只接收与参数hWnd标识的窗口或子窗口相联系的消息,子窗口由函数IsChild决定,消息值的范围由参数wMsgFilterMin和wMsgFilterMax给出。如果hWnd为NULL,则GetMessage接收属于调用线程的窗口的消息,线程消息由函数PostThreadMessage寄送给调用线程。GetMessage不接收属于其他线程或其他线程的窗口的消息,即使hWnd为NULL。由PostThreadMessage寄送的线程消息,其消息hWnd值为NULL。如果wMsgFilterMin和wMsgFilterMax都为零,GetMessage返回所有可得的消息(即,无范围过滤)。

   常数 WM_KEYFIRST和WM_KEYAST可作为过滤值取得与键盘输入相关的所有消息:常数WM_MOUSEFIRST和WM_MOUSELST可用来接收所有的鼠标消息。如果wMsgFilterMin和wMsgFilterMax都为零,GetMessage返回所有可得的消息(即,无范围过滤)。

   GetMessage不从队列里清除WM.PAINT消息。该消息将保留在队列里直到处理完毕。

   注意,此函数的返回值可非零、零或-1,应避免如下代码出现:

   while(GetMessage(IpMsg,hwnd,0,0))…

   -1返回值的可能性表示这样的代码会导致致命的应用程序错误。

原文地址:https://www.cnblogs.com/huking/p/1487162.html