我在线程中使用定时器SetTimer(   UINT   nIDEvent,   UINT   nElapse,   void   (CALLBACK   EXPORT*   lpfnTimer)(HWND,   UINT,   UINT,   DWORD)   );
回调函数timerproc是全局函数,现在我需要给回调函数传一个参数进去,不知道该怎么办?请知道的高手帮忙回答啊!谢谢!

解决方案 »

  1.   

    void CALLBACK EXPORT TimerProc(
       HWND hWnd,      // handle of CWnd that called SetTimer
       UINT nMsg,      // WM_TIMER
       UINT nIDEvent   // timer identification
       DWORD dwTime    // system time
    );
    几个参数都固定死了,你可以用全局变量或成员变量嘛。
      

  2.   

    不是有个参数是UINT nIDEvent,通过它可以知道是那个线程的定时器了。
      

  3.   

    nIDEvent只是定时器的标识,和线程没有联系吧。还是不行啊!
      

  4.   

    你不是说“每一个线程中都有一个定时器”吗?每个线程的定时器的ID不可能不知道吧,那就是
    nIDEvent。
    线程1:SetTimer( 1, 100, OnTimer ); // nIDEvent = 1
    主进程:
    void CALLBACK EXPORT TimerProc( HWND hWnd,UINT nMsg,UINT nIDEvent,DWORD dwTime )
    {
        if( nIDEvent == 1 ) // 线程1
        {
        }
    }