MFC ActiveX的创建和调用
来源:互联网 发布:高校一卡通网络 编辑:程序博客网 时间:2024/05/21 15:50
一、创建
两种方式:
第一种:创建“MFC ActiveX 控件”工程(这种方式建立的ActiveX控件只能在windows操作系统下运行,还必须在windows操作系统下安装c++依赖库安装包,因为MFC是建立在微软的c++动态库的基础上的,若不安装相关库则需要设置为静态MFC Dll编译)
第二种:创建“ATL 项目”。由于使用ATL开发ActiveX控件需要了解com技术,对程序员的要求也较高,开发时间也较长。
本文采取方法1.具体方式:
1.文档结构:
使用向导创建完工程可以看到自动生成了三个类,CMFCActiveXControl1App,CFIT_ActiveXControlCtrl和CFIT_ActiveXControlPropPage
还有对外接口定义文件MFCActiveXControl1.idl
可以打开上面三个类的头文件及cpp文件,发现它们都是派生类。
CMFCActiveXControl1App:cpp文件中定义了DllRegisterServer和DllUnregisterServer,可以发现ActiveX的注册和反组册都与该类有关。
CFIT_ActiveXControlCtrl:可以发现该头文件中声明了消息映射(让ActiveX控件程序可以接受系统发送的事件通知,如窗体创建和关闭事件),调度映射(让外部调用程序(包含ActiveX的容器)可以方便地访问ActiveX控件的属性和方法),事件映射(让ActiveX控件可以向外部调用程序(包含ActiveX的容器)发送事件通知)。也就是说对ActiveX控件的窗口操作都将在这个类中完成,包括ActiveX控件的创建,重绘,以及在此类中创建可视MFC窗体。
CFIT_ActiveXControlPropPage:显示ActiveX控件的属性页的
让我们来看看最重要的部分:对外接口定义文件MFCActiveXControl1.idl,代码如下:
这个文件可以分为四个部分来看:
1.1是TMFCActiveXControl1.Lib这个库信息
1.2第二部分是调度映射的接口信息,该接口信息包含了属性(如控件背景色)和对外方法
里面定义了一个方法AboutBox(),该方法就可以被外部程序调用,在该接口里定义的函数都是纯虚函数,这些函数的实现都是在MFCActiveXControl1中完成的,MFC通过底层的封装,让TMFCActiveXControl1类继承这个接口,实现函数。
1.4第四部分是类的信息,其中uuid就是ActiveX控件注册到注册表的classid,它是ActiveX注册后在系统内的唯一标识,WEB网页就是使用这个ID加载ActiveX控件的
2.实现封装
定义调度映射和事件映射方法,提供给外部调用者使用
二、调用
1.注册ActiveX控件
按照上面的步骤已经完成简单ActiveX控件(无窗体界面的控件)的编写,重新生成后会在Debug下生成一个MFCActiveXControl1.ocx的文件,使用windows的dos窗口可以注册这个ActiveX控件
步骤:
regsvr32 c:\.......\.ocx
反注册命令:regsvr32 c:\.......\.ocx -u
有两种情况会导致控件注册失败:
第一种:使用非Administrator用户登入系统会由于权限不足而无法注册com组件,这时候就必须使用Administrator用户登入操作系统
第二种:ActiveX控件所依赖的dll库被程序给占用,就会导致注册失败,解决办法是将正在运行的程序关闭就可以
2.测试ActiveX控件的方法有三种方式:
第一种:使用html网页来测试
classid在控件成功注册后也可以通过注册表查找,位置在“HKET_CLASSES_ROOT”中第二种:建立Mfc应用程序,类向导--》添加MFC ActiveX的类--》查找文件--》导入类
第三种:TstCon.exe
- MFC ActiveX的创建和调用
- 使用MFC创建并调用ActiveX控件
- 使用MFC创建并调用ActiveX控件
- 用ATL和MFC来创建ActiveX控件的比较
- ATL和MFC创建ActiveX控件的区别
- ATL和MFC创建ActiveX控件的区别
- 用ATL和MFC来创建ActiveX
- MFC动态库的创建和调用
- [转载]使用MFC创建并调用ActiveX控件
- 【VS开发】使用MFC创建并调用ActiveX控件
- mfc调用activex
- MFC创建activex控件
- MFC 动态创建activex
- MFC创建ActiveX总结
- MFC创建ActiveX基础
- 创建Activex的方法以及调用
- [ActiveX]使用VS2010创建MFC ActiveX工程项目
- 用ATL和MFC来创建activex控件
- Android WebView网页自适应手机屏幕
- cocos2d - JS 判断进入后台事件
- MySQL运算符和函数
- CSS简介、编写CSS代码的方式、HTML和CSS注释
- css3,居中文字,居中对齐,文字两端对齐
- MFC ActiveX的创建和调用
- CDN的四大关键技术
- 苹果手机下不是a标签却有了a标签的样式的解决方案
- mysql优化,不用怕面试题了
- 无线轮播
- window.postMessage实现跨域通信
- Listview条目多样化
- html的三大元素
- 前向声明