IWebBrowser2打开的htm中js(或者window.external)怎么调用C++函数?非同一般js调用C++问题

mutoudingzi 2011-12-20 12:22:58
用得DirectUI做界面,
打开网页

CActiveXUI* pActiveXUI1 = static_cast<CActiveXUI*>(m_pm.FindControl(_T("ie")));
if( pActiveXUI1 ) {
IWebBrowser2* pWebBrowser1 = NULL;
pActiveXUI1->GetControl(IID_IWebBrowser2, (void**)&pWebBrowser1);
if( pWebBrowser1 != NULL ) {
pWebBrowser1->Navigate(L"test.htm",NULL,NULL,NULL,NULL);
//pWebBrowser->Navigate(L"about:blank",NULL,NULL,NULL,NULL);
pWebBrowser1->Release();
}
}

test.htm中

<input id="button" type="button" value="点击调用客户端的CppCall函数" onclick="return window.external.CppCall()" />


网上的代码都看的差不多了,也不是很懂。
问题:怎么实现htm中调用CppCall函数?
...全文
825 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ma_yingkun 2013-07-08
  • 打赏
  • 举报
回复
js 调用c++函数撒,我做过的,完美实现,嘻嘻
wwwr 2012-08-08
  • 打赏
  • 举报
回复
哎!我也遇到这个问题了。。。。哥们你解决没?
mutoudingzi 2011-12-30
  • 打赏
  • 举报
回复
小弟不才,至今没解决。散分了~
oyljerry 2011-12-21
  • 打赏
  • 举报
回复
应该通过HTML页面来传递JS,子页面JS传递到主HTML页面JS,然后再有主页面调用C++
mutoudingzi 2011-12-21
  • 打赏
  • 举报
回复
现在大约知道是错误出在哪里,是指针问题搞不定。
我参考的代码是直接在mainform显示网页,
CWebBrowserBase *pBrowser;
而我是想在某个子页面里显示这个网页,怎么把指针指到子页面呢?
或者高手请留联系方式。
  • 打赏
  • 举报
回复
可以自己在设置元素的OnClick事件。

HRESULT IHTMLElement::get_onclick(VARIANT *p);
HRESULT IHTMLElement::put_onclick(VARIANT v);
  • 打赏
  • 举报
回复
参考mfc的做法。

mfc向导支持生成html界面的对话框。
里面有点html上的按钮,然后调用C++的函数的功能。
fishion 2011-12-20
  • 打赏
  • 举报
回复
html文件:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
<script language="javascript">
function doTest()
{
FuckATL1. CppCall();
}
</script>
</HEAD>
<BODY>
<OBJECT ID="FuckATL1" CLASSID="CLSID:19CE2D6B-DE5E-4343-9F9B-
D37053304AC2
">
</OBJECT>
<input type="button" value="测试加法" id="btnOK" onclick="doTest
();"></input>
</BODY>
</HTML>
fishion 2011-12-20
  • 打赏
  • 举报
回复
只知道调用组件函数,没了解过调用C++函数

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧