建立项目,选择VC6下面的MFC Activex ControlWizard工程
按照默认的选项直接finish就可以了
2,在Resource View选定Dialog,new一个dialog,设置一下此dialog属性:Style:Child,Border:None,Visible,control,Static edge三个都选中。
双击new一个与此dialog对应的类:PlayerWnd
3,Class View,右键DActivexPlayer Add Method.如下图:
4,在类CActivexPlayerCtrl增加一个成员变量PlayerWnd m_PlayerWnd
并用classwizard增加一个消息:OnCreate (WM_CREATE)
OK,现在准备工作都做完了,开始做事了:
首先,完成在CActivexPlayerCtrl的OnCreate中m_PlayerWnd窗口的创建。注释OnDraw里所有内容,都是画的一些没用的东西。然后加上画我们的m_PlayerWnd窗口:m_PlayerWnd.MoveWindow(rcBounds, TRUE);
然后,完成html传通过CActivexPlayerCtrl::SetMediaInfo传递过来的参数处理。
HTML
<HTML>
<HEAD>
<TITLE>ATL 8.0 test page for object Calc</TITLE>
</HEAD>
<BODY>
<OBJECT ID="ActivexPlayer" CLASSID="CLSID:FC010C68-57B6-4F67-9D89-5FD066AC9F29" HEIGHT=460 WIDTH=640></OBJECT>
<script type="text/javascript">
var ActivexPlayer = document.getElementById('ActivexPlayer');
ActivexPlayer.SetMediaInfo("45566464645", 3);
</script>
</BODY>
</HTML>
CLSID:找到ActivexPlayer.odl
[ uuid(FC010C68-57B6-4F67-9D89-5FD066AC9F29),
helpstring("ActivexPlayer Control"), control ]
至此已经完成了html传递参数到Activex控件,显示对话框的工作了。
F7编译链接,VC会自动注册生成的ActivexPlayer.ocx
用IE打开html.
OVER
参考资料:
http://www.codeguru.com/Cpp/COM-Tech/activex/controls/article.php/c2615