怎么才能使用Sleep() 函数不出现沙漏?
写了一个程序,因为程序需要多次使用了Sleep()这个函数,但是每次这个函数运行的时候,鼠标总会编程沙漏,有什么办法使用这个函数不出现沙漏?

解决方案 »

  1.   


    //**************************************
    // 延时
    //**************************************
    void//***********************************
    //响应系统消息
    //***********************************
    void
    doevents( void )
    {
    //使用peekmessage
    MSG msg; if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
    {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    }
    }delay( DWORD times )
    {
    DWORD dwStart = GetTickCount();
    DWORD dwEnd = dwStart;
    do
    {
    doevents();
    dwEnd = GetTickCount();
    } while( ( dwEnd - dwStart )  <=  times );
    }
      

  2.   


    //**************************************
    // 延时
    //**************************************
    void//***********************************
    //响应系统消息
    //***********************************
    void
    doevents( void )
    {
    //使用peekmessage
    MSG msg; if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
    {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    }
    }delay( DWORD times )
    {
    DWORD dwStart = GetTickCount();
    DWORD dwEnd = dwStart;
    do
    {
    doevents();
    dwEnd = GetTickCount();
    } while( ( dwEnd - dwStart )  <=  times );
    }
      

  3.   

    C++ 有doevents();这个函数么?
      

  4.   


    //***********************************
    //响应系统消息
    //***********************************
    void
    doevents( void )
    {
    //使用peekmessage
    MSG msg; if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
    {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    }
    }
    //**************************************
    // 延时
    //**************************************
    void
    delay( DWORD times )
    {
    DWORD dwStart = GetTickCount();
    DWORD dwEnd = dwStart;
    do
    {
    doevents();
    dwEnd = GetTickCount();
    } while( ( dwEnd - dwStart )  <=  times );
    }用delay
      

  5.   


    //***********************************
    //响应系统消息
    //***********************************
    void
    doevents( void )
    {
    //使用peekmessage
    MSG msg; if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
    {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    }
    }
    //**************************************
    // 延时
    //**************************************
    void
    delay( DWORD times )
    {
    DWORD dwStart = GetTickCount();
    DWORD dwEnd = dwStart;
    do
    {
    doevents();
    dwEnd = GetTickCount();
    } while( ( dwEnd - dwStart )  <=  times );
    }用delay
      

  6.   


    //***********************************
    //响应系统消息
    //***********************************
    void
    doevents( void )
    {
    //使用peekmessage
    MSG msg; if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
    {
    TranslateMessage( &msg );
    DispatchMessage( &msg );
    }
    }
    //**************************************
    // 延时
    //**************************************
    void
    delay( DWORD times )
    {
    DWORD dwStart = GetTickCount();
    DWORD dwEnd = dwStart;
    do
    {
    doevents();
    dwEnd = GetTickCount();
    } while( ( dwEnd - dwStart )  <=  times );
    }用delay