使用Active x控制元件CWebBrowser控制元件實作MFC對話框內嵌google map。遇到的問題如下:Google-earth.html檔案通過瀏覽器可以正常打開,但是在VC++程式中呼叫html檔案卻無法顯示。有遇到過類似問題的朋友,望指點一二,感激不盡,源檔案下載地址:http://download.csdn.net/detail/qq_22081879/9571229
實驗代碼如下:
VC++程式:(只在OnInitDialog()處添加有幾行代碼,做測驗用)
// TODO: 在此添加額外的初始化代碼
CHAR szPath[255];//路徑
memset(szPath,0,sizeof(char)*255);//路徑清零
GetCurrentDirectory(255,szPath);//獲得當前目錄
StrCat(szPath,"\\Google-earth.html");
m_webBrower.SetSilent(TRUE);//禁止彈出腳本錯誤
m_webBrower.Navigate(szPath,NULL,NULL,NULL,NULL);
html代碼(來源于網路):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312"/><!--注意字符集設定為:gb2312,不會出現中文亂碼-->
<title>Google 地圖 JavaScript API 示例: 地圖示記</title>
<script src="http://ditu.google.cn/maps?file=api&v=2&key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA&hl=zh-CN" type="text/javascript"></script>
<script type="text/javascript">
function initialize()
{
if( GBrowserIsCompatible() )//如果瀏覽器支持google地圖
{
map = new GMap2(document.getElementById("map_canvas"));//定義一個地圖變數,不加關鍵字var,表明是一個全域變數
map.setCenter(new GLatLng(22.536, 113.956), 14);//設定初始中心,縮放級別
//map.openInfoWindow(map.getCenter(),document.createTextNode("Hello, world"));//顯示一個氣泡資訊
map.addControl(new GLargeMapControl());//增加大的縮放條
//map.addControl(new GSmallMapControl());//增加小的縮放條
map.addControl(new GMapTypeControl());//增加地圖型別切換按鈕
var point = new GLatLng(22.536, 113.956); //生成一個坐標點
map.addOverlay(new GMarker(point)); //增加一個地圖示記
//GEvent.addListener(map, "click", function() {alert("click map");});//注冊單擊事件的監聽器,設定回應函式
}
}
</script>
<script type="text/javascript">
function jsfunctiontest()<!--此函式會被VC中代碼呼叫-->
{
alert("這是JS中的alert函式");
//map.panTo(new GLatLng(39.927,116.407));//跳轉到指定坐標
}
</script>
<script type="text/javascript">
function TansTo(lat, lng)//轉到指定位置,有兩個引數,緯度和經度
{
//alert(lng);//測驗引數是否傳遞過來
//var longi = parseFloat(lng);//后來才知道,不用型別轉換,javascript可以自動轉換
//var lati = parseFloat(lat);
map.panTo(new GLatLng(lat, lng));
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()"> <!--//頁面加載完成后執行initialize()函式-->
<div id="map_canvas" style="width: 800px; height: 500px"></div><!--定義名為map_canvas的DIV-->
</body>
</html>
uj5u.com熱心網友回復:
webbrowser控制元件支持的不夠好。功能沒有瀏覽器好uj5u.com熱心網友回復:
那怎么辦呢?我現在時編譯后運行可以顯示地圖網頁,但是直接執行可執行檔案exe卻顯示不了,提示已取消網頁導航……轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/131287.html
標籤:界面
上一篇:MyGraphCut
