现在假设我的屏幕上有两块区域,我用定时器同时在两快区域分别作图!我的思路如下,不知是否可行!
SetTimer(1,2000,NULL);
SetTimer(2,1000,NULL);
OnTimer(UINT nIDEvent)
{
    switch(nIDEvent)
    {
    case 1:
     MyDraw1();//利用双缓冲对区域1进行重绘
     break;
    case 2:
   myDraw2();//利用双缓冲对区域2进行重绘
   break;
     default:
   break;
   }
}

解决方案 »

  1.   

    你射击的原理上是没问题,但是有个要注意的地方,在你利用双缓冲对指定区域进行重绘的时候,先要将该区域设置成无效绘制区域,这样你的重绘过程才会被刷新显示,一般会用InvalidateRect加上UpdateWindow
      

  2.   

    代码逻辑是没问题,但是,你画的内容有没有重叠?SetTimer(1,2000,NULL);
    SetTimer(2,1000,NULL);这个周期就有重叠。你自己说双缓冲的,如果内容有重叠,就要区分一个先后了。
      

  3.   

    这个有可能重叠!两块区域的图有可能在同一时刻都要进行重绘! 
    我在考虑这种方法CPU的占有率应该比较高!
    不知道有没有什么更简单点的方法!
      

  4.   

    两个myDraw函数可不可以分别开一个线程去绘制
      

  5.   

    回复于:2012-08-14 10:17:44你射击的原理上是没问题,但是有个要注意的地方,在你利用双缓冲对指定区域进行重绘的时候,先要将该区域设置成无效绘制区域,这样你的重绘过程才会被刷新显示,一般会用InvalidateRect加上UpdateWindow