问题:
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
如果把return msg.wParam 改为return 0有什么区别吗?
回答:
上面的例子中,运行到return处意味着GetMessage()返回0,即GetMessage()收到WM_QUIT消息使得应用程序窗口过程的完结退出。
在WM_QUIT消息的说明可以看到:
wParam
Specifies the exit code given in the PostQuitMessage function.
lParam
This parameter is not used.
即wParam中存在的是应用程序的返回代码,所以此处的return msg.wParam的功用是将返回代码依次返回调用层(退出)。