VC++ CHtmlView與Javascript互動
阿新 • • 發佈:2019-01-06
轉載自:http://blog.sina.com.cn/s/blog_3fa68f2d01000bm5.html如何在CHtmlView中實現與HTML頁面使用window.external對像進行互動。
1、在類定義時新增
DECLARE_DISPATCH_MAP()
如:
class CItemView : public CHtmlView
{
DECLARE_DISPATCH_MAP()
....
}
2、在建構函式中新增
EnableAutomation();
如:
CItemView::CItemView()
{
EnableAutomation();
}
3、在類實現檔案前新增類似如下的對映
BEGIN_DISPATCH_MAP(CItemView, CHtmlView)
DISP_FUNCTION(CItemView, "函式名", 函式名, VT_BOOL, VTS_I4 VTS_I4)
END_DISPATCH_MAP()
即 BOOL CItemView::函式名(int, int)
4、重寫OnGetExternal
HRESULT CItemView::OnGetExternal( LPDISPATCH *lppDispatch)
{
*lppDispatch = GetIDispatch(TRUE);
return S_OK;
}
==================================
在頁面的JS指令碼中可以這呼叫
window.external.函式名(1,1);
1、在類定義時新增
DECLARE_DISPATCH_MAP()
如:
class CItemView : public CHtmlView
{
DECLARE_DISPATCH_MAP()
....
}
2、在建構函式中新增
EnableAutomation();
如:
CItemView::CItemView()
{
EnableAutomation();
}
3、在類實現檔案前新增類似如下的對映
BEGIN_DISPATCH_MAP(CItemView, CHtmlView)
DISP_FUNCTION(CItemView, "函式名", 函式名, VT_BOOL, VTS_I4 VTS_I4)
END_DISPATCH_MAP()
即 BOOL CItemView::函式名(int, int)
4、重寫OnGetExternal
HRESULT CItemView::OnGetExternal( LPDISPATCH *lppDispatch)
{
*lppDispatch = GetIDispatch(TRUE);
return S_OK;
}
==================================
在頁面的JS指令碼中可以這呼叫
window.external.函式名(1,1);