开发电子海图导航界面时,如何将我自己画的舰船根据GPS位置动态显示在海图上不闪烁?我是说如何不要每次舰船GPS位置信息来都改变重画海图,只要重画舰船图标位置和朝向就可以了。那样肯定不会闪烁是吗?可是我想问怎么实现?

解决方案 »

  1.   

    如果是二次开发,成熟的平台都会有动态图层,专门用于GPS这类东西的,如果是自主开发那就不知道了
      

  2.   

    爽缓存技术可以解决你的问题,楼主可以到google上查一下啊
      

  3.   

    如果在海图范围内,不要重画此图,你只需要在onUpdata 里重新画图标的位置,用BitBlt的异或方式去画,这样就不会出现闪烁,而且简单速度又快,当数据变化时,你只需要调用pDoc->UpdataAllView();
      

  4.   

    我现在基本解决了,就是在我的View类里程序动态创建了CStatic控件pStatic,将格式为.ICO格式的舰船图标贴在其上(pStatic->SetIcon(IDI_MYICON));当外部GPS数据来时,只要调用pStatic->MoveWindow(GPS位置,,)、pStatic->ShowWindow(1)就可以了。不知道大家对我这种方法有何见解?
     lixiaohuprogram说的似乎有道理,不过“用BitBlt的异或方式去画”这句话我不是很理解,图标的载体是什么?直接用pDC画是不可能的。双缓冲技术画也是不可能的,我试过了,用内存画图然后贴出去照样会闪烁,因为海图图层太多,内存也画不赢。根本方法还是不能随便去更新海图画面。
      

  5.   

    想要图像不闪烁,建议使用双缓存技术。
    现在内存缓存DC中画好刷新的图像在用BitBlt()贴到屏幕上。