我在主框架函数里开了一个数据采集线程,线程结束的时候给一个标志变量赋值pDataAcquisition->bDataFinished = TRUE;
然后将View刷新一下:pTestView->Invalidate();在View.cpp里的OnDraw函数里,判断该标志pDataAcquisition->bDataFinished ,如果为真则向屏幕输出几行字:
pDC->TextOut(10,10,"左脚-右脚");
str.Format(_T("%0.1f"),pFrame->pDataAcquisition.ADCData);
pDC->TextOut(10,10+j*10,str);运行的时候屏幕上有字,但是问题是总是不停的闪烁,不知道为什么?按理说在OnDraw里显示只有在需要重绘的时候才会闪烁呀,但是我这里没有别的函数调用OnDraw,怎么回事呢?请达人指点。注:pDataAcquisition是一个类的实例,在该类中,由一个变量ADCData;pFrame是主框架的实例,
然后将View刷新一下:pTestView->Invalidate();在View.cpp里的OnDraw函数里,判断该标志pDataAcquisition->bDataFinished ,如果为真则向屏幕输出几行字:
pDC->TextOut(10,10,"左脚-右脚");
str.Format(_T("%0.1f"),pFrame->pDataAcquisition.ADCData);
pDC->TextOut(10,10+j*10,str);运行的时候屏幕上有字,但是问题是总是不停的闪烁,不知道为什么?按理说在OnDraw里显示只有在需要重绘的时候才会闪烁呀,但是我这里没有别的函数调用OnDraw,怎么回事呢?请达人指点。注:pDataAcquisition是一个类的实例,在该类中,由一个变量ADCData;pFrame是主框架的实例,
pDataAcquisition->bDataFinished = TRUE;
pDataAcquisition->bDataAcquisition = FALSE;
AfxMessageBox(_T("数据采集结束!"));
pDataAcquisition->pTestView->Invalidate();
return 0;我调试运行到pDataAcquisition->pTestView->Invalidate();
这里,在运行就是不停的闪烁了,也就是说程序一直停在这里了?但是不用这句代码又没法通知View重绘,请问达人该如何解决呢?
请问达人,这个时候如果是因为线程没有退出的话,该怎么解决呢?
如果在ondraw 里面画,效果是一样的