本帖最后由 wonengfeng 于 2010-09-05 13:55:35 编辑

解决方案 »

  1.   

    问题补充:
    DWORD CHVDialg::WaitForSingleObjectLoop(CEvent* pHandles, DWORD ulWaitTime)
    {
    DWORD result = WAIT_TIMEOUT; 

    while(true)  { 

    MSG msg ;

    //#define QS_ALLINPUT (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE)

    result = MsgWaitForMultipleObjects(1, PHANDLE(pHandles), 
    FALSE, ulWaitTime, QS_ALLINPUT|QS_ALLEVENTS);

    if (ulWaitTime !=INFINITE && (result == WAIT_OBJECT_0 || result == WAIT_TIMEOUT) ) 
    return result;

    else {   
    if(WAIT_FAILED==result)
    {
    AfxMessageBox("0");
    return result;
    }

    if (result == WAIT_OBJECT_0) {
    AfxMessageBox("1");
    return result;

    else if(result == WAIT_OBJECT_0 + 1) { 

    while (PeekMessage(&msg,NULL,0,0,PM_REMOVE)) {

    TranslateMessage(&msg);

    DispatchMessage(&msg);


    }
    }

    }
    }
    结果总是WAIT_FAILED==result,不解!!