应该不是消息没有收到,而是收到了却放在了系统屏幕输出的缓冲中:)只不过是没有输出而已。
ostream只有当flush()或者遇见endl时(其实也是偷偷调用了flush)才会进行屏幕输出。你的程序简单改改就好:MSG msg;
while(GetMessage(&msg,NULL,NULL,NULL))
{
switch(msg.message )
{case WM_NOTIFY:
if(msg.wParam ==1)
cout <<"收到WM_NOTIFY消息\n" << endl ;
break;
case WM_CLOSE:
cout <<"收到WM_CLOSE消息,按ENTER键退出" << endl ;
PostQuitMessage(0);
break;
}
}
ostream只有当flush()或者遇见endl时(其实也是偷偷调用了flush)才会进行屏幕输出。你的程序简单改改就好:MSG msg;
while(GetMessage(&msg,NULL,NULL,NULL))
{
switch(msg.message )
{case WM_NOTIFY:
if(msg.wParam ==1)
cout <<"收到WM_NOTIFY消息\n" << endl ;
break;
case WM_CLOSE:
cout <<"收到WM_CLOSE消息,按ENTER键退出" << endl ;
PostQuitMessage(0);
break;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货