PumpMessage()是做什么的

解决方案 »

  1.   

    Contains the thread's message loop. 
    virtual BOOL PumpMessage( );
     Res
    PumpMessage contains the thread's message loop. PumpMessage is called by CWinThread to pump the thread's messages. You can call PumpMessage directly to force messages to be processed, or you can override PumpMessage to change its default behavior.Calling PumpMessage directly and overriding its default behavior is recommended for advanced users only.Requirements
    Header: afxwin.h
      

  2.   

    消息泵.BOOL CWinThread::PumpMessage()
    {
    ASSERT_VALID(this); if (!::GetMessage(&m_msgCur, NULL, NULL, NULL))
    {
    #ifdef _DEBUG
    if (afxTraceFlags & traceAppMsg)
    TRACE0("CWinThread::PumpMessage - Received WM_QUIT.\n");
    m_nDisablePumpCount++; // application must die
    // Note: prevents calling message loop things in 'ExitInstance'
    // will never be decremented
    #endif
    return FALSE;
    }#ifdef _DEBUG
    if (m_nDisablePumpCount != 0)
    {
    TRACE0("Error: CWinThread::PumpMessage called when not permitted.\n");
    ASSERT(FALSE);
    }
    #endif#ifdef _DEBUG
    if (afxTraceFlags & traceAppMsg)
    _AfxTraceMsg(_T("PumpMessage"), &m_msgCur);
    #endif // process this message if (m_msgCur.message != WM_KICKIDLE && !PreTranslateMessage(&m_msgCur))
    {
    ::TranslateMessage(&m_msgCur);
    ::DispatchMessage(&m_msgCur);
    }
    return TRUE;
    }