希望在客户区上制作一幅世界地图,然后当用户将鼠标指向中国时整个中国都高亮显示,请问这个功能怎么实现?最主要想问的,是如何识别鼠标有否指向某个范围内。先谢谢大家!

解决方案 »

  1.   

    搞Map控件   简单的MapObject对象 ==
      

  2.   


    我还没考虑怎么实现地图。暂时打算是load一幅bmp进来实现
      

  3.   


    有map控件?是要下载的还是VC自带的?
      

  4.   

    Active控件  是需要下载的,加载进去就可以了。
      

  5.   

    可以直接用mapinfo的mapx,比较简单。 但是这些地图控件都是需要地图数据的。
    比如mapx需要tab文件,
    里面有些searchbypoint之类的函数,可以通过你的鼠标坐标及给定距离查出所有符合的feature,这些图元,可以就是你要的中国区域。
      

  6.   

    bmp图片的话,我建议你就用颜色来判断得了,简单。
      

  7.   

    CRgn::PtInRegion,用CRgn::CreatePolygonRgn创建不规则多边形就可以了
      

  8.   

    还是得用区域CRgn::PtInRegion,将区域设置为中国地图的区域,然后在鼠标移动消息中处理,判断鼠标位置是否处在区域内
      

  9.   

    用掩模,一个bmp中没有的纯色掩模就可以判断是在内还是在外。
      

  10.   


    要先看看MSDN,这个就是用在不规则图形上的
      

  11.   


    但首先的问题是怎么创建那个region?
      

  12.   

    但首先的问题是怎么创建那个region?
      

  13.   

    我觉得你还是搞个gis控件得了。 gis控件本身就是用来处理你这类地图问题的。
    底层都帮你做好了。 而且用mapinfo画张地图出来也很容易。
      

  14.   

    可以直接用mapinfo的mapx,比较简单。 但是这些地图控件都是需要地图数据的。 
    比如mapx需要tab文件, 
    里面有些searchbypoint之类的函数,可以通过你的鼠标坐标及给定距离查出所有符合的feature,这些图元,可以就是你要的中国区域。