在MapX中响应滚轮放大缩小地图

原创 2005年04月26日 15:14:00

’模块中

Option Explicit

Public Const GWL_WNDPROC = (-4)
Public Const WM_COMMAND = &H111
Public Const WM_MBUTTONDOWN = &H207
Public Const WM_MBUTTONUP = &H208
Public Const WM_MOUSEWHEEL = &H20A

Public Oldwinproc   As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long

Public Function FlexScroll(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Select Case wMsg
        Case WM_MOUSEWHEEL
            Select Case wParam
                Case -7864320     '向下滚
                    SetCurrentScale "ZoomOut", 2
                Case 7864320       '向上滚
                    SetCurrentScale "ZoomIn", 2
          End Select
    End Select
   
    FlexScroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam, lParam)
End Function

Private Sub SetCurrentScale(strINorOut As String, dScale As Double)
    If frmMain.Map1 Is Nothing Then Exit Sub
   
    If strINorOut = "ZoomIn" Then
        frmMain.Map1.Zoom = (frmMain.Map1.Zoom) * dScale
        frmMain.Map1.Refresh
    ElseIf strINorOut = "ZoomOut" Then
        frmMain.Map1.Zoom = (frmMain.Map1.Zoom) / dScale
        frmMain.Map1.Refresh
    End If
End Sub

Private Sub Form_Load()
        
    Oldwinproc = GetWindowLong(Map1.hWnd, GWL_WNDPROC)
    SetWindowLong Map1.hWnd, GWL_WNDPROC, AddressOf FlexScroll

End Sub

Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong Map1.hWnd, GWL_WNDPROC, Oldwinproc
End Sub

MapX系列-- 鼠标滚轮支持

鼠标滚轮支持mapX控件提供了预制的鼠标滚轮事件,并且允许用户自定义鼠标滚轮的响应事件。如果要使用预制的功能,只需要指定Map.MouseWheelSupport属性即可,分为三种响应情况,1为不响应...
  • giselite
  • giselite
  • 2010年03月30日 12:13
  • 3269

鼠标滚轮实现地图放大缩小 并以滚轮点为中心点

客户端脚本function getObjectById(id){ if (typeof(id) != "string" || id == "") return null; ...
  • king27
  • king27
  • 2008年05月29日 17:32
  • 3117

使用鼠标滚轮实现放大缩小地图

首先在地图容器上添加滚轮事件:onmousewheel="mouseWheelZoomMap()"客户端脚本://鼠标在地图区的滚轮事件function mouseWheelZoomMap(){   ...
  • fuao
  • fuao
  • 2008年05月13日 15:35
  • 2319

修改ArcMap默认的鼠标滚轮放大缩小,AE实现修改鼠标滚轮放大缩小

时间 2013-07-12 18:17:00  博客园-所有随笔区原文  http://www.cnblogs.com/nsc-lee/p/3186817.html   来看具体的方法: ...
  • xipan10102232
  • xipan10102232
  • 2015年03月09日 16:18
  • 3267

Canvas也能实现Map的能拖能缩放的效果

1. Canvas简介:Canvas是HTML5中新增的一个重要的HTML标签,它为了客户端矢量图形而设计的,顾名思义Canvas就是一个画布,你可以在上面画出你想要的任何图形,如果你想设计一个特色的...
  • jcx5083761
  • jcx5083761
  • 2015年02月13日 13:57
  • 6967

史上最详细MFC调用mapX5.02.26步骤(附地图测试GST文件)

花了一个晚上的时间终于搞定mapX5.02.26的调用了,记录下。 先看看效果图1吧。,当然很原始,不过这只是写了10行不到的代码而已。下面开始 平台:win8.1 64bit + VS2010 ...
  • sunnyloves
  • sunnyloves
  • 2015年01月19日 20:12
  • 4333

VC+mapX5.0 在指定经纬度显示车辆图标

VC+mapX5.0开发训练:在指定经纬度显示车辆图标 我正在学习利用vc实现mapx控件的功能,已经能够在vc的程序框架中实现地图显示,并且可以实现了放大、缩小、漫游以及图层控制等功能了。现...
  • zhihu008
  • zhihu008
  • 2012年07月23日 22:06
  • 10319

react vr通过鼠标滚轮放大缩小场景

react vr中文网:react vr中文网--www.vr-react.com 熟悉three.js的同学都知道,如果要实现鼠标滚动,只需要引入TrackballControls.js,就可...
  • liu__520
  • liu__520
  • 2017年06月30日 15:42
  • 785

pictureBox里用滚轮实现 放大缩小功能

        [DllImport("user32.dll")]        public static extern int WindowFromPoint(int xPoint, int yP...
  • a316019667
  • a316019667
  • 2011年01月07日 17:07
  • 4801

使用VC++创建MapX控件步骤

使用VC++创建MapX控件步骤如下:  第一步:用VC++的程序向导来创建一个单文档程序MapXSample。  第二步:Project> Add To Project>Files,选择MapX...
  • zhihu008
  • zhihu008
  • 2012年07月23日 22:25
  • 7696
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在MapX中响应滚轮放大缩小地图
举报原因:
原因补充:

(最多只允许输入30个字)