使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用

来源:互联网 发布:ppt是什么软件 编辑:程序博客网 时间:2024/05/29 17:13

上一节实现了控件在页面中的加载及界面显示,这一节开始在上一节的基础上添加接口供WEB调用。
手动在CMainDlg.h中添加一方法:

public:
         LONG SetParam(LPCTSTR lpParam);

CMainDlg.cpp中为:

LONG CMainDlg::SetParam( LPCTSTR lpParam )
{
        CString strParam(lpParam);

 SetDlgItemText(IDC_EDIT_OUTPUT, _T("ActiveX处理后为:") + strParam);

 return 1;
}

在类视图中,右键点击“DemoLib”下的“_DDemo”,在右键菜单中选择“添加”——>“添加方法”,然后按如图进行设置:

使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms

使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms

 

然后完成。此时向导会在Demo.idl、DemoCtrl.h、DemoCtrl.cpp中添加以下代码:

使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms
使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms

 

使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms

 

使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms
在 CDemoCtrl::SetCtrlParam 方法中添加如下图所示代码:
使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms
此时点击菜单栏中“生成”、“重新生成解决方案”,如果没有错误,控件将以最新的版本在系统中注册。
生成成功后,我们修改上次的1.htm文件,在其中添加JS以调用控件的接口,1.htm源码为:
<HTML>
<HEAD>
<TITLE>Test ActiveX</TITLE>
</HEAD>
<BODY>
<input type="button" value="接口测试" id="btnOK" onclick="SetParam();"></input>
</BODY>
<OBJECT ID="DemoCtrl" WIDTH=528 HEIGHT=45 classid="CLSID:2131BC48-5E19-4DF6-9534-A534329C365F">
    <PARAM NAME="_Version" VALUE="65536">
    <PARAM NAME="_ExtentX" VALUE="12806">
    <PARAM NAME="_ExtentY" VALUE="1747">
    <PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
<script language="javascript">
    function SetParam()
    {
 var sum = DemoCtrl.SetCtrlParam("Hello, ActiveX!");
 alert(sum);
    }
</script>
</HTML>
 通过浏览器打开1.htm,提示ActiveX,安装后点击页面上按钮,就会看到效果,如图所示:
使用VS2010开发ActiveX(MFC)控件(3)——添加接口及WEB调用 - Invoker - Forgotten Realms
下节讲如何通过代码让控件初始化安全和脚本安全,防止安装时被系统阻止。 
0 0
原创粉丝点击