现在的位置: 首页 > 综合 > 正文

CHTMLVIEW ,Javascript调用VC++ 函数

2018年06月07日 ⁄ 综合 ⁄ 共 740字 ⁄ 字号 评论关闭

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(CVideoView, "Func1", Func1, VT_EMPTY, VTS_NONE) 
END_DISPATCH_MAP()

4、重写OnGetExternal
HRESULT CItemView::OnGetExternal( LPDISPATCH *lppDispatch)
{
*lppDispatch = GetIDispatch(TRUE);
return S_OK;
}
==================================
在页面的JS脚本中可以这调用
window.external.函数名();

DISP_FUNCTION(CVideoView, "Func2", Func2, VT_BOOL, VTS_I4 VTS_BSTR) 

BOOL Func2(int x,LPCSTR  str) {}

参考文章:http://www.bc-cn.net/Article/kfyy/vc/jszl/200601/3003_2.html

抱歉!评论已关闭.