在wm5上显示地图图片的测试

    本来是想做手机地图,后来由于各种问题被耽搁了。

     闲来无聊,向一个哥们要了几张地图图片-png格式,自己在手机上显示,想测试一下速度。如果以后还要做手机地图,那么

    将读本地图片文件改成网络传输就OK了。

    自编了一套显示原理,能用,感觉很无奈!

    目前显示,放大,缩小,点击移动实现了。三天就OK了。

    期间遇到了一些问题:

    1.双缓冲。刚开始是获得一个图片,显示一个图片。在屏幕上是一块一块的显示。后来统一成一块显示。以下是一段代码

保存一下,省的以后再上网查。

        // 获得一个临时画的DC
  CDC* dc = GetDC();
  m_BkBufMap.CreateCompatibleBitmap( dc, 512, 512); //w,h表示窗口的宽和高
  m_BkBufDC.CreateCompatibleDC( dc );
  m_BkBufDC.SelectObject(&m_BkBufMap);
  // 清空背景
  CRect   rect;   
  GetClientRect(rect);
  CBrush   bkbrush( RGB( 255, 255, 255));    
  m_BkBufDC.FillRect(rect,&bkbrush);

 

for()

    for()

{
    CBitmap bitmap;
    bitmap.Attach(SHLoadImageFile(strImageFilePath));

    BITMAP bmpInfo;
    bitmap.GetBitmap(&bmpInfo);

    CDC bitmapDC;
    bitmapDC.CreateCompatibleDC(  dc );
    CBitmap* pOldBitmap = bitmapDC.SelectObject(&bitmap);

    m_BkBufDC.BitBlt(originalX, originalY, bmpInfo.bmWidth, bmpInfo.bmHeight, &bitmapDC, 0, 0, SRCCOPY);

    bitmapDC.SelectObject(pOldBitmap);
    bitmap.DeleteObject();
    bitmapDC.DeleteDC();
}

// 绘制整个界面
  dc->BitBlt( 0, 0, rect.right, rect.bottom, &m_BkBufDC, 0, 0, SRCCOPY);

 

    双缓冲大概就这个流程。

 

目前正在研究移动的时候,如果移动范围还在这个DC上,怎么利用以前的这个DC(不用再读一遍文件)---至于为什么不保存

每个图片的 bitmap  自己想去吧。

 

将来要做的工作:

    1.打点。

    2.发位置短信。

    3.POI查询相关。

    4.绘图。

 

看来我真的很无聊。。。。。。。。。。。。。。。。。。。。。。。。。。

 

等做完这些,研究矢量的,研究网络传输的。 也很无聊。。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值