利用MFC向导建立ActiveX控件后,会生成几个类,其中COleControl (名称为testFrame) 的父类是CWnd ,我们就可以在其上建立我们需要的子窗口了.
新建的工程内容如图:
首先建立一个对话框资源,选 IDD_FORMVIEW,为其建立关联类,基于CDailog,命名为CActXInterface.
选择对话框的属性:
英文版VC:style - child,border - dialog frame, visible, control, static edge
中文版VC:"样式"设置为"下层","更多样式"中选"可见","控件".详细设置见下三图:
第二步:在CYouProjectNameCtrl头文件中添加CActXInterface Dialog 变量:(记得加入头文件)
CActXInterface ActXInterface
第三步:为CYouProjectNameCtrl添加消息WM_CREAT ,对应函数OnCreat()在其中创建对话框
ActXInterface.Create(IDD_FORMVIEW,this)//IDD_FORMVIEW为资源ID
第四步:在CYouProjectNameCtrl的OnDraw()消息中显示你的对话框.
ActXInterface.MoveWindow(rcBounds,TRUE)
编译,OK.用VC自带容器工具测试.Tool-->ActiveX Control Test...
第五步:注册控件,VC在编译时已自动将控件注册了.要是控件被移动了,要记得重新注册.
第六步:编写HTML文件(这段的详细教程请关注作者的后续文章):加入如下段.
<OBJECT id=DOcxtest1 classid=clsid:706B8249-D5F8-438F-B391-FE7D620C946C </OBJECT>
clsid为控件的注册id,需要改成该运行环境的注册id,见VC工程目录中odl文件中如下段(该段在文件最后,别弄错了id)
// Class information for CAxtiveX_InterfaceCtrl
[ uuid(706B8249-D5F8-438F-B391-FE7D620C946C),
helpstring("AxtiveX_Interface Control"), control ]
第七步:按以上步骤做了之后,用IE打开HTML文件,发现ActiveX控件界面很小,这个可以在容器(HTML文件)中设定:
如:
<OBJECT id=DOcxtest1 classid=clsid:706B8249-D5F8-438F-B391-FE7D620C946C width="532" height="356">
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="2646">
<PARAM NAME="_ExtentY" VALUE="1323">
<PARAM NAME="_StockProps" VALUE="0">
</OBJECT>
至此,全部ok,你可以方便地在该对话框中建立你想要的控件,如按钮,Edit等
1. 清理一下解决方案,然后重新试试;2. 不要在对话框类的构造函数及其初始化列表中初始化类类型的变量。(这个问题我也碰到过,误打误撞这么解决了,说不清理由,该条仅作参考)
不知道你说的变量是指什么变量?为控件添加变量的话,我下面的回答希望可以帮助到您:首先要确保你的窗口是否添加了类。添加类的方法是:
1、打开你开发的窗口
2、在你开发的窗口右键点击,d出菜单,选择"添加类"
3、输入类名(建议以C开头)和其他参数(可选),点击确定。
做完之后
如果你用的是Visual Studio的话,你可以按照下面的步骤为控件进行变量的添加:
1、打开 资源视图
2、打开你所开发的那个Dialog
3、用鼠标选中你需要添加变量的控件,然后鼠标右键,d出菜单里选择 添加变量
4、可以添加两种类型的变量:a、控件类型 b、值类型。选择类型后(默认是控件类型) 输入变量名字和控件类之后,点击确定就好了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)