QQ登录

只需一步,快速开始

上位机MFC双缓存无闪烁绘制动态曲线源代码

[ 复制链接 ]

上位机MFC双缓存无闪烁绘制动态曲线源代码

上位机MFC双缓存无闪烁绘制动态曲线源代码

例程界面如上。
通过双缓存方法,避免在绘制动态曲线时出现界面闪烁,
关键代码

  1. /////////////////////////////////////////////////////////////////////////////
  2. // CMyView message handlers
  3. //这里我们运用了两点技术使得我们重绘的图形看起来不闪烁
  4. //1.重载了OnEraseBkgnd函数,它是用来在每次重绘之前用空白位图擦除背景的函数,我们让它每次用我们自定义的
  5. //位图来作为背景
  6. //2.我们使用了双缓存的结构,即先把背景图形绘制在内存中,绘制好了一起显示出去
  7. BOOL CMyView::OnEraseBkgnd(CDC* pDC)
  8. {
  9.         // TODO: Add your message handler code here and/or call default
  10.         CDC MemDC; //首先定义一个显示设备对象
  11.         CBitmap MemBitmap;//定义一个位图对象
  12.         //随后建立与屏幕显示兼容的内存显示设备
  13.         MemDC.CreateCompatibleDC(NULL);
  14.         //这时还不能绘图,因为没有地方画
  15.         //下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛,可以用窗口的大小
  16.         MemBitmap.CreateCompatibleBitmap(pDC,m_plot.m_ctlRect.Width(),m_plot.m_ctlRect.Height());
  17.         //将位图选入到内存显示设备中
  18.         //只有选入了位图的内存显示设备才有地方绘图,画到指定的位图上
  19.         CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
  20.         //先用背景色将位图清除干净,这里我用的是白色作为背景
  21.         //你也可以用自己应该用的颜色
  22.         m_plot.DrawBasic(&MemDC);
  23. //        m_plot.DrawLegendShadow(&MemDC);
  24.         m_plot.DrawXAxisGrid(&MemDC);
  25.         m_plot.DrawYAxisGrid(&MemDC);
  26. //        m_plot.DrawLegend(&MemDC);
  27.         //将内存中的图拷贝到屏幕上进行显示
  28.         pDC->BitBlt(0,0,m_plot.m_ctlRect.Width(),m_plot.m_ctlRect.Height(),&MemDC,0,0,SRCCOPY);
  29.         //绘图完成后的清理
  30.         MemBitmap.DeleteObject();
  31.         MemDC.DeleteDC();
  32.         return TRUE;
  33. }
复制代码
工程源代码下载地址:
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:上位机MFC双缓存无闪烁绘制动态曲线源代码.rar 
文件大小:64.13 KB  售价:3金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我


  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索