智能终端定制开发 ad
MTK/瑞芯微/高通-Android,智能模块/智能终端方案商

深度定制各类智能终端和智能硬件产品,提供硬件选型咨询、参考设计、元器件推荐、驱动开发、行业模块集成、操作系统定制与算法集成等软硬件定制服务。
contact.aspx

Android核心板产品覆盖2G、3G、4G通讯,双核、四核、八核CPU,可选的平台有MTK6580、MTK6737、MTK6750等,Android版本有5.1 6.0 7.0等。
contact.aspx

可广泛应用于低端智能POS、安防监控、车载设备、低端智能机器人、智能家居、智能硬件、工业智能手持设备、低端智能对讲设备、低端警务或执法设备、智能穿戴、贩卖机、物流柜、智能门禁系统等行业和设备。
contact.aspx

可提供以太网转串口透传,WIFI转串口透传,蓝牙转串口透传,CAN总线模拟量控制输出模块等。
contact.aspx

带3G或4G通讯功能,运行android系统,有多个串口,可以外挂各种模块:条码扫描、RFID、指纹识别、身份证识别、磁条卡、ID卡、GPS/北斗模块等。
contact.aspx

具有4G通讯功能,多个RS232或RS485接口,以太网接口,USB接口,CAN接口,多个AD输入。基于Android系统智能平台,方便APP应用开发。器件严格选型,运行稳定,质量可靠。
contact.aspx

VC6下的GDI+双缓冲
[VC 编程] 2008-04-03



作者:yanjie2500(中华阁)

下载源代码

一、 概述

  这段时间在研究GDI+双缓冲的实现方法,在网上花了很多时间都没有找到合适的示例,特别是针对VC6的。后来通过对网上资料的分析,和对SDK/MFC的学习,实现了,把它写出来与大家分享,希望可以找到更好的实现方法。
  GDI+的一个优点就是可以直接使用jpg图像,在这个示例中,我没有把图像文件放在资源中,而是动态读取,一是由于项目需求,图像数目是未知的;二是由于动态读文件效率低下,使用双缓冲更能体现出优势。

二、 分析

  在实现过程中,犯了一个错误,把读图像的方法放在了OnDraw之中,后来发现拖动滚动条闪烁的很严重,原因在于ScrollBar拖动时会产生消息激活OnDraw,这样的话,每拖动滚动条就读一次文件,重绘一次,效率当然低下了!
  我的实现方式是:更换图像后调用UpdateAllViews,内存DC的绘制都放在OnUpdate中操作,在内存绘制好后再在屏幕中贴图。

// 贴上画布 m_pOldBitmap = m_memDC.SelectObject(&m_memBitmap); m_memDC.FillSolidRect(0,0,2000,2000,RGB(100,100,100));
// 贴图 CString pStrFullPath = pDoc->m_pStrMapPath + pDoc->m_pStrMapName; USES_CONVERSION; LPWSTR wStr = A2W(pStrFullPath); Image img(wStr); pDoc->m_nMapWidth = img.GetWidth(); pDoc->m_nMapHeight = img.GetHeight(); Graphics g(m_memDC.GetSafeHdc()); g.DrawImage(&img,0,0,img.GetWidth(),img.GetHeight());
// 恢复 m_memDC.SelectObject(m_pOldBitmap);

三、截图


图一 GDI+双缓冲效果

四、结束语

  如果大家有更好的方法,请写出来分享。

[VC 编程添加评论 | 评论/阅读(0/369)
评论
昵称
主页
内容
递交


Copyright @ 我的开发笔记     2008 - 2017         粤ICP备19155526号-1