我想编写一个 动画 例子,可是时间不知道怎么控制
========================================
SetTimer(记时器号,时间间隔,回掉函数/*可为NULL*/);回掉函数为NULL就执行OnTimer();
OnTimer(...)
{
  RECT rect;
  CClientDC dc(this);
  GetClientRect(&rect);
  使用内存DC进行会图操作,然后
  dc.BitBlt(0,0,宽,高,&你的内存DC,0,0,SRCCOPY);
}
========================================
这里这个OnTimer()函数好像没有定义,我写这个函数的时候没有提示参数,请问是否如上面所说的调用,还是如果回调函数为NULL,是执行WM_TIMER消息呢??高手指点一下!!!

解决方案 »

  1.   

    需要在ClassWizard中进行WM_TIMER消息映射。呵呵,这就相当于指定了WM_TIMER的消息处理函数为OnTimer。
      

  2.   

    SetTimer是让系统定时的发送WM_TIMER消息,呵呵,不管是回调函数还是使用OnTimer都一样!呵呵
      

  3.   

    OnTimer是个消息。其实就是个回调函数
      

  4.   

    能看看我这个程序错在哪里吗,都没有执行这个WM_TIMER消息switch( message)
    {
    case WM_CREATE:
    //MessageBox( hwnd, "aa", "aa", MB_OK);
    SetTimer( hwnd, 1, 100, NULL);
    return 0;
    case WM_PAINT:
    /*hdc = BeginPaint( hwnd, &ps);
    MoveToEx( hdc, 10, 10, NULL);
    LineTo( hdc, 100, 100);
    EndPaint( hwnd, &ps);*/
    return 0;
    case WM_TIMER:
    switch(wParam)
    {case 1:
    hdc = BeginPaint( hwnd, &ps);
    MoveToEx( hdc, 10, 10, NULL);
    LineTo( hdc, 100, 100);
    EndPaint( hwnd, &ps);
    break;
    }
    return 0;
    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;
    }