开发工具:
1. Visual Studio 2005,用于ActiveX组件的开发
2. Microsoft ActiveX Control Pad,用于生成包含ActiveX Control的HTML网页。
步骤:
1. 通过Visual Studio 2005新建一个MFC ActiveX Control工程,编译之后在debug/release目录下可以找到一个XXXX.ocx文件。具体步骤可以参考MSDN。
2. 在ActiveX Control Pad选择菜单File -> New HTML,创建一个HTML页面。
3. 从ActiveX Control Pad选择菜单Edit -> Insert ActiveX Control ....,然后会弹出一个消息框。从消息框的列表中选择相应的ActiveX Control,点击OK即可将ActiveX Control插入到HTML页面。
4. 在本机通过IE浏览器打开生成的HTML即可看到ActiveX Control显示在HTML页面中。
如果把网页放到HTTP server上,要让其他电脑上可以通过IE来访问该页面并且ActiveX组件可以正常运行,还有一些额外的步骤需要完成。
通过ActiveX Control Pad生成的HTML看起来就像下面一定脚本:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="ActiveXControlTest11" WIDTH=100 HEIGHT=51
CLASSID="CLSID:96908503-3BEB-4E2B-AA87-F44DC492BC0E">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
</BODY>
</HTML>
每一个ActiveX Control都会有一个对应的CLSID,该ID是唯一的。通过OBJECT的CLASSID属性指定ActiveX Contorl的ID,就可以找到相应的ActiveX Control。每一个ActiveX Control都必须先注册,再使用。上述实例可以正常运行是因为在编译ActiveX工程的时候,VS2005会自动完成对ActiveX Control的注册。ActiveX Contorl的注册和反注册也可以通过实用工具regsvr32完成。
如HTML中对OBJECT加入CODEBASE属性,就可以让IE自动完成对ActiveX Control的注册。修改后的HTML脚本如下:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="ActiveXControlTest11" WIDTH=100 HEIGHT=51
CLASSID="CLSID:96908503-3BEB-4E2B-AA87-F44DC492BC0E"
CODEBASE="release/ActiveXControlTest1.ocx">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
</BODY>
</HTML>
相关链接:
Microsoft ActiveX Control Pad
http://msdn2.microsoft.com/en-us/library/ms968493.aspx