想在自己的应用循环中如何接收WINDOWS消息比如我自己的程序在一个事件循环中始终在兜
但它需要处理一些windows消息,程序如何写呢?while ( bFinishLoop() )
{    MSG msg;
    GetMessage(&msg,NULL,0,0);  
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    if ( CheckBusy( helpmsg ) )
PostMessage( (BYTE)this, WM_PAINT );........................
} 程序大部分情况能处理系统消息,但有时就挂起来了(别的地方响应WINDOWS消息不灵)请问这是啥原因啊?

解决方案 »

  1.   

    MSG msg;
    while(GetMessage(&msg,NULL,0,0))
    {
    switch(msg.message)
    {
    case ...
    ...
    }
    }
      

  2.   

    MSG msg;
    while (::PeekMessage(&msg, NULL,0,0,PM_NOREMOVE)) 
    {
    if (!AfxGetApp()->PumpMessage()) 
    {
    ::PostQuitMessage(0);
    return;

    }
      

  3.   

    程序大部分情况能处理系统消息,但有时就挂起来了(别的地方响应WINDOWS消息不灵)请问这是啥原因啊?
    -----------------
    应该是你程序省略号部分执行的时间太长,导致消息阻塞