①需要一個別人寫好的類CWebPage,將其對於的兩個檔案WebPage.h和WebPage.cpp添加到工程中。
②添加WebBrowser控制項,在視圖/對話方塊類的標頭檔中#include "webbrowser2.h",增加成員變數m_webBrowser,調用Navigate()函數載入一個html頁面。
③在對話方塊或者視圖的實現檔案中,加入#include "WebPage.h",在按鈕的響應函數中就可以調用javascript函數了,具體代碼如下:
CWebPage web;
web.SetDocument(m_webBrowser.GetDocument());
CComVariant varResult; //存放傳回值
//注意:參數要用字串類型傳遞過去
web.CallJScript("TansTo", m_latitude, m_longitude, &varResult); //調用JS中的函數TansTo(),並傳遞2個參數(緯度,經度),將傳回值寫入varResult
if( varResult. dblVal == 122.211 ) // double型對應dblVal,整形對應intVal
MessageBox(“成功從js中取得變數值”);
④在html檔案的script標籤中定義對應的函數,具體代碼如下:
<script type="text/javascript">
function TansTo(lat, lng)//轉到指定位置,有兩個參數,緯度和經度
{
map.panTo(new GLatLng(lat, lng));//Google地圖的API,跳轉到座標指定地點
return 122.211 ;//返回一個double型的值給varResult www.2cto.com
}
</script>
注意:
(1)上面javascript中panTo()函數是google map API中的一個函數,可根據不同需要自訂相關函數。
(2)以上實現不用管CWebPage類起什麼作用,直接用就行,如果想詳細瞭解內容,請搜尋有關“COM組件自動化”“IDispatch介面”的文章。
作者:masikkk