①需要一個別人寫好的類CWebPage,將其對於的兩個文件WebPage.h和WebPage.cpp添加到工程中。
CWebPage類頭文件和實現文件下載地址:
http://download.csdn.net/detail/masikkk/4427190
②添加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));//谷歌地圖的API,跳轉到坐標指定地點
return 122.211 ;//返回一個double型的值給varResult
}
</script>
注意:
(1)上面javascript中panTo()函數是google map API中的一個函數,可根據不同需要自定義相關函數。
(2)以上實現不用管CWebPage類起什么作用,直接用就行,如果想詳細了解內容,請搜索有關“COM組件自動化”“IDispatch接口”的文章。