用于在Google Earth COM API中收听MouseEvents的样板代码

问题描述:

我试图使用browsercontrol和IGEPlugin获取Windows窗体应用程序中鼠标的LAT/LON位置。 任何人都有线索?用于在Google Earth COM API中收听MouseEvents的样板代码

+0

请参阅下面提到的此控件库,该控件库具有此示例。 http://code.google.com/p/winforms-geplugin-control-library/ – Fraser 2010-07-16 15:30:17

这不是如果您使用免费的WinForms Geplugin控制librar Y-只要按照这些简单的步骤

你需要告诉你要监听mousemove事件时

geWebBrowser.AddEventListener(gePlugin.getGlobe(), "mousemove"); 
web浏览器对象太难

然后你需要设置一些事件处理程序。下面的代码应该很容易阅读。您可以通过DoMouseMove方法中的mouseEvent参数确定鼠标光标的纬度/经度。

geWebBrowser.KmlEvent += GeWebBrowserKmlEvent; 


private void GeWebBrowserKmlEvent(object sender, GEEventArgs e) 
     { 
      // if it is a mouse event 
      if (null != sender as IKmlMouseEvent) 
      { 
       handleKmlMouseEvents((IKmlMouseEvent)sender, e.Data); 
      } 
      else 
      { 
       MessageBox.Show(GEHelpers.GetTypeFromRcw(sender)); 
      } 
     } 

private void handleKmlMouseEvents(IKmlMouseEvent mouseEvent, string action) 
     { 
      string currentTarget = mouseEvent.getCurrentTarget().getType(); 

      switch (action) 
      { 
       case "mousemove": 
        { 
         DoMouseMove(mouseEvent); 
         break; 
        } 

       case "click": 
        { 
         DoClick(mouseEvent, currentTarget); 
         break; 
        } 
       case "mousedown": 
        { 
         DoMouseDown(mouseEvent, currentTarget); 
         break; 
        } 
       case "mouseup": 
        { 
         DoMouseUp(mouseEvent); 
         break; 
        } 
      } 
     } 

private void DoMouseMove(IKmlMouseEvent mouseEvent) 
{ 

} 
+0

指向控件的链接:http://code.google.com/p/winforms-geplugin-control-library/ – Fraser 2010-07-16 15:28:46