VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 620|回复: 2

[求助] VC 数组中的数据 怎样通过 BitBlt 在某窗口中显示

[复制链接]
61_avatar_middle
在线会员 发表于 2016-4-6 14:09:18 | 显示全部楼层 |阅读模式
3驿站币
我有一组曲线数据 想要在一个窗口中显示 ,在这个窗口中的OnEraseBkgnd(CDC* pDC) 中重画背景
        for(y=0;y<100;y++)
        {
        for(x=0;x<363;x++)
                {
                        dat=P_imge[i];               
            pDC->SetPixel(x,y,RGB(dat,dat,dat));
                        i++;
                }
        }
这个是重画图像,能实现效果 但是有点慢 和刷屏有停顿,我想能否用这个数组中的数据 通过        BitBlt函数 直接贴到窗口中,BitBlt这个函数我不太会用 原地址和目的地址怎么产生 如 数组怎么转到图像。谢谢。





上一篇:ON_WM_LBUTTONDOWN()的原定义
下一篇:我想把静态文本框这个控件在mfc刷成黑色,但是复制的别人的源码,一直有问题
51_avatar_middle
online_admins 发表于 2016-4-6 14:32:20 | 显示全部楼层
你这种情况建议用双缓冲,就不会闪了,而且效率要比你现在直接描画快
具体可以搜索下双缓冲是什么东西
61_avatar_middle
ico_lz  楼主| 发表于 2016-4-6 15:37:02 | 显示全部楼层
   memDC.CreateCompatibleDC(pDC);//创建与目标DC相兼容的内存DC,
                 memBitmap.CreateCompatibleBitmap(pDC,363, 123);//根据目标DC创建位图
                 memDC.SelectObject(&memBitmap);//把位图选入内存DC
                 for(y=0;y<100;y++)
                 {
                         for(x=0;x<363;x++)
                         {
                                 dat=P_imge[i];               
                                 memDC.SetPixel(x,y,RGB(dat,dat,dat));
                                 i++;
                         }
                 }

                 pDC->BitBlt(0 ,0,m_bmpWidth,m_bmpHeight,&memDC,0,0,SRCCOPY);
       我查了下网上资料 试了下 可以解决我的问题了 比以前刷新快多了。给需要的朋友看看。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-6-20 02:16

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表