我看一般都是用GetMessage,那PeekMessage呢?
讲详细点哦,原理!

解决方案 »

  1.   

    The IMAPIMessageSite::GetMessage method returns the current message.The PeekMessage function checks a thread message queue for a message and places the message (if any) in the specified structure. 去看MSDN吧
      

  2.   

    好像getmessage()将一直等直到有消息才返回,peekmessage()是立即返回,它们得返回值也不相同,
      

  3.   

    getmessage一直等待有消息才返回,而且是按顺序的,peekmessage立即返回,可以从消息队列中提取消息,而且可以选择是否删除等操作。下面是peekmessage的一段程序,getmessage就很简单了。
        MSG msg;
        memset((void *)&msg, 0, sizeof(MSG));    //清除运行线程接收到但未处理的所有消息
        while(::PeekMessage(&msg, (HWND)-1, 0, 0, PM_REMOVE))
        {
            if ( WM_USER_UITO == msg.message )
            {
                ASSERT(msg.wParam);
                delete (CMessage *)msg.wParam;
            }
        }