基于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

posted @ 2019-08-02 15:04  ~小小鸟~  阅读(540)  评论(0编辑  收藏  举报