您现在的位置: 爱51代码网 >> 范文 >> 文章正文
mfc绘制大量点用位图方式并放大缩小通过鼠标

1、绘制1000000以上的点,我是通过for循环,遍历map中的数据并绘制,造成屏幕会卡一段时间,如何解决?(我是用线程来做,以便不影响正常的通讯,还有没有其他的办法?)
2、当每次通过鼠标放大、缩小一块区域后,都需要重新遍历map,再绘制一遍,因为我的想法是希望直接放大、缩小位图,但是
对于位图如果放大、缩小后,相应的线也会变粗,所以我只能重新遍历map绘图,有没有其他方法,可以放大、缩小位图不用遍历,而且相应的线正常的粗细?
3、我做的位图操作,只是在屏幕来回切换才调用位图进行粘贴,但是放大、缩小不能来回粘贴,上面的两点已经说明原因,该怎么办?
不知道你的map里是怎么存放数据的,总的感觉你要么程序设计不合理要么数据结构(map里如何存放数据)不合理

在大数据情况下,你必须明确数据序号和屏幕显示范围的对应关系,然后记录一个屏幕左上角的起始点,从起始点开始绘画当前屏幕能够容纳范围的数据,而那些超出屏幕范围的数据不要处理(因为超出了屏幕),这样可以节省非常多的时间

另外,你使用map来存放数据,可能不是一个好的选择,因为map是使用关键字定位数据,不方便建立数据单元和屏幕位置的关系,使用数组可能会好的多 最好使用其他的控件,比如mschart

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    redhat 2.6 (santigo 5.6) vsftp
    shell如何实现自动填写操作执行下
    linux shell 文件配置sh:color:
    shell script语法一定要加path吗
    SecureCRT如何访问虚拟机vmWare中
    C#如何读取WINDOWS的放大系数
    cximge的图如何存入数据库并提取
    DBGRID控件显示查询结果文本类型
    TChart控件如何把表中右边的系列
    fastreport提示没有找到fr_class
    linux下编译faac及faad2提示 rec
    TClientDataSet如何避免多人更新
    如何用delphi代码修改XML节点
    vc++ pvoid *用delphi怎么表达
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    MFC编串口通信为什么不能接收
    CFile类可以直接read出结构体
    MFC 程序运行一段时间就没有
    internal compiler problem 
    vc报错vector iterators inc
    vc如何获得播放过程中一张图
    unresolved external symbol
    64位系统上指针是8字节吗
    父类 *指针=new 子类 有可能
    vc如何框选出图片中的条形码
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |