我的程序大概是这样的:
建立在view类基础上的mfc,
pro1
{
   用采集卡得到数据;
}
pro2
{
   用图形显示数据;
}
pro3
{
  while()  //控制循环结束也是个问题?
  {
      pro1();
      pro2();
  }
}
on_draw()
{
   初始化准备工作,申请空间;
   pro3();
   释放空间等;
}
onSelect() //对话框确定以后调用on_draw()
{
   .......
   Invalidate();  //这个函数的作用就是调用on_draw()吗?
}大家帮忙看看有什么办法实现?

解决方案 »

  1.   

    能不能详细一点?
    我要做的是:采集卡只要采集完数据就要刷新,控制采集完的是在pro1中
      

  2.   

    Invalidate使无效,系统就会自动刷新 或 发送WM_PAINT消息
      

  3.   

    agree with wuxuan(真心英雄) ,use Timer
      

  4.   

    我把程序改成这样:
    pro3
    {
      while()  //控制循环结束也是个问题?
      {
          pro1();
          pro2();
          Invalidate();
      }
    }
    行不行呢?
    还有,用Timer可能和采集的时间不一致,该怎么办?
      

  5.   

    pro3中的while循环占用了所有的CPU时间,使得刷新WM_PAINT没有时间发送执行,在循环中间插入下面的函数:
    void PumpMessages(UINT message)
    {
        MSG msg;
        // Handle dialog messages
        while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
      if(msg.message==message)
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);  
    }
        }
    }
      

  6.   

    谢谢,还没试呢,大家有什么高见可以发到我的信箱,继续讨论,我要下线
    [email protected]