想在自己的应用循环中如何接收WINDOWS消息比如我自己的程序在一个事件循环中始终在兜
但它需要处理一些windows消息,程序如何写呢?while ( bFinishLoop() )
{ MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage( &msg );
DispatchMessage( &msg );
if ( CheckBusy( helpmsg ) )
PostMessage( (BYTE)this, WM_PAINT );........................
} 程序大部分情况能处理系统消息,但有时就挂起来了(别的地方响应WINDOWS消息不灵)请问这是啥原因啊?
但它需要处理一些windows消息,程序如何写呢?while ( bFinishLoop() )
{ MSG msg;
GetMessage(&msg,NULL,0,0);
TranslateMessage( &msg );
DispatchMessage( &msg );
if ( CheckBusy( helpmsg ) )
PostMessage( (BYTE)this, WM_PAINT );........................
} 程序大部分情况能处理系统消息,但有时就挂起来了(别的地方响应WINDOWS消息不灵)请问这是啥原因啊?
while(GetMessage(&msg,NULL,0,0))
{
switch(msg.message)
{
case ...
...
}
}
while (::PeekMessage(&msg, NULL,0,0,PM_NOREMOVE))
{
if (!AfxGetApp()->PumpMessage())
{
::PostQuitMessage(0);
return;
}
}
-----------------
应该是你程序省略号部分执行的时间太长,导致消息阻塞