MFC自己有一个窗口过程吧,但是如果我自己建立一个窗口过程,他怎么分辨的呢?
窗口过程的作用是??谢谢mfc窗口过程

解决方案 »

  1.   

    mfc
    的消息route 你没看过吧!看这个!http://blog.csdn.net/wangyao1052/article/details/8045017
      

  2.   

    一个窗口过程对应一个线程
    也就是说默认MFC会为你提供一个主线程,也就是派生自CWinApp的CMyApp类对应的run()如果你要重新建立一个窗口过程,那就要从CWinThread派生出一个新的类
    然后重写这个类的run,这就是你要的窗口过程
    这样的话你肯定就能识别自己的线程处理函数了
      

  3.   

    这里就是消息循环
    在你的派生类里重写run就能响应你感兴趣的消息int CWinThread::Run()
    {
    ASSERT_VALID(this); // for tracking the idle time state
    BOOL bIdle = TRUE;
    LONG lIdleCount = 0; // acquire and dispatch messages until a WM_QUIT message is received.
    for (;;)
    {
    // phase1: check to see if we can do idle work
    while (bIdle &&
    !::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE))
    {
    // call OnIdle while in bIdle state
    if (!OnIdle(lIdleCount++))
    bIdle = FALSE; // assume "no idle" state
    } // phase2: pump messages while available
    do
    {
    // pump message, but quit on WM_QUIT
    if (!PumpMessage())
    return ExitInstance(); // reset "no idle" state after pumping "normal" message
    if (IsIdleMessage(&m_msgCur))
    {
    bIdle = TRUE;
    lIdleCount = 0;
    } } while (::PeekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE));
    } ASSERT(FALSE);  // not reachable
    }