1. 程式人生 > >VC++ CHtmlView與Javascript互動

VC++ CHtmlView與Javascript互動

轉載自:‍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);