首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 呼叫 Google Earth COM API 開發(三):滑鼠雙擊事件與座標取得

     編輯:關於C語言

透過全域滑鼠鉤子攔截雙擊事件,判斷是否點擊在 Google Earth 渲染區域,若是則取得螢幕座標並轉換為經緯度。

雙擊事件處理

void mouseHook_MouseDbClick(object sender, MouseEventArgs e) {
    IntPtr hWnd = NativeMethods.WindowFromPoint(e.Location);
    if (hWnd == this.GeRenderHWnd) {
        Point pt = this.Control.PointToClient(e.Location);
        if (this.Control.ClientRectangle.Contains(pt)) {
            DoublePoint dp = ((GERenderPanel)Control).DetermineScreenCoordinates(pt.X, pt.Y);
            Thread t = new Thread(ShowMouseDbClickPoint);
            t.Start(dp);
        }
    }
}

void ShowMouseDbClickPoint(object obj) {
    DoublePoint dp = (DoublePoint)obj;
    PointOnTerrainGE pGe = GeApp.GetPointOnTerrainFromScreenCoords(dp.X, dp.Y);
    Console.WriteLine($"雙擊位置:經度={pGe.Longitude}, 緯度={pGe.Latitude}");
    MessageBox.Show("偵測到滑鼠雙擊!");
}

注意:程式碼未包含主視窗焦點檢測,實際部署需自行補強。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved