基于MFC的网页ActiveX控件开发全程实录2(js向ActiveX控件传递参数)
原文转自 https://blog.csdn.net/qianbin3200896/article/details/81452822
1、ActiveX控件部分(JS到ActiveX控件)
继续上一篇博客中新建的项目,找到DActiveXDemo,右键添加——属性
添加第一个参数,用来传递字符串,具体如下
可以看到在ActiveXDemoCtrl.h文件中创建了一个变量和一个属性修改事件
待会我们我在OnParStrChanged事件中编写参数传递的代码,这里我们先给之前创建的CActiveXDlg对话框添加一个文本框用来显示js传来的参数
然后给该文本框添加对应的成员变量
接下来我们可以修改OnparStrChanged代码,具体如下
void CActiveXDemoCtrl::OnparStrChanged(void) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此添加属性处理程序代码 m_MyDlg.m_parStr.Format("%s",m_parStr); m_MyDlg.UpdateData(FALSE); SetModifiedFlag(); }
然后重新生成项目。
2、网页部分
接下来修改html代码如下:
<HTML> <HEAD> <TITLE>js传递参数给ActiveX控件</TITLE> <meta http-equiv="Content-Type" content="text/html; charset=GBK" /> <SCRIPT LANGUAGE="JavaScript"> function SendToActiveX() { if (InputStr.value!="") { Test_js.parStr= InputStr.value; } } </SCRIPT> </HEAD> <BODY> 请输入你想传递的字符串: <INPUT TYPE="text" NAME="InputStr" VALUE=""> <p></p> <INPUT TYPE="button" NAME="传参" VALUE="测试js传参数: " ONCLICK=SendToActiveX()> <p></p> <OBJECT ID="Test_js" WIDTH=50% HEIGHT=35% CLASSID="CLSID:B852A7D3-3356-400E-A2BF-A15F7D0F99CB"> <PARAM NAME="_Version" VALUE="65536"> <PARAM NAME="_ExtentX" VALUE="2646"> <PARAM NAME="_ExtentY" VALUE="1323"> <PARAM NAME="_StockProps" VALUE="0"> </OBJECT> </BODY> </HTML>
用IE浏览器运行html文件,输入对应的字符串然后点击按钮即可。效果如下
3、代码下载
下面给出代码的链接(含源代码和html文件):https://download.csdn.net/download/qianbin3200896/10586112