各位大侠们:
问题是这样的,小弟在做一个基于GPRS技术的数据采集系统的上位机软件,接到了数据要把它们显示出来。实现数据的实时显示。每50ms发一次数据 MFC中的OnPaint()是上来就调用一次,然后每次遇到对话框被覆盖或者移动对话框时有会重画,不会主动重画,所以我就想了两套方案,但是都出现了同样的问题失败了。
第一套方案我每接一次数据,就用this->Invalidate();刷一次,暂时能实现功能,超过一分钟整个屏幕就乱了,花了;
第二套方案我给OnPaint()发个一个消息,结果也是超过了一分钟出现了同样的问题,整个屏幕就没法看了,全花了。请问有没有好的方法教教我!
问题是这样的,小弟在做一个基于GPRS技术的数据采集系统的上位机软件,接到了数据要把它们显示出来。实现数据的实时显示。每50ms发一次数据 MFC中的OnPaint()是上来就调用一次,然后每次遇到对话框被覆盖或者移动对话框时有会重画,不会主动重画,所以我就想了两套方案,但是都出现了同样的问题失败了。
第一套方案我每接一次数据,就用this->Invalidate();刷一次,暂时能实现功能,超过一分钟整个屏幕就乱了,花了;
第二套方案我给OnPaint()发个一个消息,结果也是超过了一分钟出现了同样的问题,整个屏幕就没法看了,全花了。请问有没有好的方法教教我!
解决方案 »
- CSDN为什么没有批准好友的权限?
- 急:m_wndList.Create(this, 1234, CRect(0,0,200,400));这句代码在debug下错误,但Release下可以?
- 请bohut(伯虎)大哥来接分!!!
- 新春快乐!http://tv.showgood.tv/jrshow/newyear.php?jr=2003newyear_guo
- 大家快来看一下,我这段程序怎么不行呀,这是在指定区域填充颜色(多边形)
- 我对子对话框中的EDIT打回车,子对话框竟然消失(注:没有OK,CANCEL按钮)
- (200分)看看里面的文章,见者有分,满20人结。。。
- 如何在对话框中加一个回车的消息映射??
- VC的HOOK问题
- windows程序设计滚动条消息中的messagebox无限弹出
- 关于捕获鼠标的问题
- mfc 如何将视图中的内容保存为图像(bmp、jpg),就像Windows的画图工具那样,谢谢大虾
和OnPaint有什么关系
你把数据图形化输出了?
你这个需求实现没有任何问题
建议:
1. 可以考虑做个自定义控件,当然也可以在窗口的指定区域绘制
2. 绘图采用双缓冲技术
3. OnEraseBkg返回true
建议:
1. 可以考虑做个自定义控件,当然也可以在窗口的指定区域绘制
2. 绘图采用双缓冲技术
3. OnEraseBkg返回true
[/Quote]
听着有点意思,我是原先是在TAB空间下的一个对话框类中花了一个矩形框,在矩形框中画得图,能不能具体讲讲双缓冲技术呢,不太懂,能不能给出讲解代码呢
我就不在这赘述了
你要代码我就给你一段典型应用
希望对你有帮助void YourCtrl::OnPaint()
{
CPaintDC dc(this);
CRect rectClient;
CBitmap bitmapTemp, *pOldBitmap;
CDC* pMemDC = new CDC;//内存DC //获取控件信息
GetClientRect(rectClient);
//创建位图内存
bitmapTemp.CreateCompatibleBitmap(&dc, rectClient.Width(), rectClient.Height());
pMemDC->CreateCompatibleDC(&dc);
pOldBitmap = pMemDC->SelectObject(&bitmapTemp);
//在pMemDC上绘图
//将pMemDC上的内容绘制到主dc上
dc.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), pMemDC, 0, 0, SRCCOPY);
pMemDC->SelectObject(pOldBitmap);
ReleaseDC(pMemDC);
delete pMemDC;
}