作一个管理软件,主界面是一个大地图,要求能对地图进行放大,缩小,移动,还要在地图上设定一些热区,当点击时,能打开一个新窗口!!
    这个该怎么做,我是先获得image位置和高度,宽度,并在image上加了一个Lable,通过它的nmousedown,onmousemove,onmouseup事件获得鼠标移动的方向和距离。这样是能移动了,可热区就作不了了。有没有简单的办法可以实现

解决方案 »

  1.   

    热区可以用按钮啊,bitbutton或第三方按钮,让按钮的图片正好是大图片的截出的一小块就可以了。
      

  2.   

    我原先是想在大图上放一些空的image,然后用空image的onclick事件来打开新窗口的,但图片连续放大,缩小,移动后,就对不上位置了
      

  3.   

    看起来是GIS的问题,但GIS投资太大,用图片就可以解决的就没必要用GIS。1、你的热区应该有来源,比如单位(企业等)点,将其周围一定的范围划为它的热区。这样的话,热区的位置就是可计算的,在图片上也就可以计算出来。放大后重新计算热区范围并据此刷新显示2、热区的显示。 根据计算出来的热区多边形(或圆形)在Panel上的Canvas画出来(可以根据一些属性来选择输出颜色,如鼠标在热区时绘制给热区特定颜色)。Panel作为绘图容器,也可以用其它wincontrol,image不显示,作为数据来源3、热区的响应。在mousemove中判断鼠标的位置,鼠标到达热区可以定制一些动作,如刷新热区显示4、鼠标点击事件与mousemove雷同。5、放大缩小建议采用CopyRect来实现
    以上是些初步设想,不定能成功
      

  4.   

    用FLASH控件来实现呢,或许更简单些
      

  5.   

    缩放用scallby来做更好。其它的就动态生成的imagebutton就完了。
      

  6.   

    热区,用shape莱做,图移动热区移动,图放大热区放大,缩小同样的