• 您的位置我爱Aspx >> VC.Net >> <b>深入剖析MFC中Windows消息处理、运行机制</b>
  • <b>深入剖析MFC中Windows消息处理、运行机制</b>

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:13:37  关键字:
  • // 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;

    }

    如你所想,这才是MFC消息处理的核心基地[也是我个人认为的]。

    GetMessage不同于PeekMessae,它是不得到消息不罢体,PeekMessage如果发现消息队列中没有消息会返回0,而GetMessage如果发现没有消息,等,直到有了消息,而且,GetMessage不同于PeekMessage,它会将消息移走[当然,PeekMessage也可以做到这点]。我想当你读了这个函数后,你应明白PreTranslateMessage函数的用法了吧[我比较喜欢在程序中充分利用这个函数]。

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:<b>用VC实现拨号上网程序</b>
    下一篇:<b>屏幕取词的原理</b>
  • 相关文章