开发环境:VS2010
开发步骤:
一、ActiveX控件项目的新建
1、 文件->新建->项目,选择MFC ActiveX控件,项目名称叫做MCDocx。
2、 新建完成后,默认生成如图所示的类视图结构:
其中CMCDocxApp类用于控制整个控件的程序执行流程,默认生成InitInstance()和ExitInstance
()两个成员函数,用于初始化控件以及释放资源;
CMCDocxCtrl类代表整个控件,默认生成构造、析构函数等,其中OnDraw()函数用于绘制控件的外观。
MCDocxLib为控件的导出库,含有控件中可被外部调用的接口,其中_DMCDocx为方法和属性的接口,_DMCDocxEvents为事件的接口。
二、给项目添加接口
1、 添加属性接口
右键选中_DMCDocx,添加->添加属性。
在这里我们添加一个Directon属性,属性类型为bool型,属性名为Direction,我们发现界面上自动为我们生成了变量名和通知函数。
我们发现在DMCDocx接口下新增了一个Direction的属性接口。
同时我们发现在CMCDocxCtrl中自动生成了其成员变量m_Direction和通知函数OnDirectionChanged(),顾名思义,通知函数是在m_Direction发生变化时被激活,从而我们可以添加自己的代码,做相应的处理。
上面是以成员变量的形式添加属性接口的方法,下面再讲解一下以Get/Set方法添加属性的方法。 还是右键选中_DMCDocx, 添加->添加属性
我们添加名为Index的属性接口,将下面的Radio选项选择Get/Set方法,在接口库中生成了名为Index的属性接口。
这次,在CMCDocxCtrl中并没有生成,任何成员变量,而是生成了GetIndex
和SetIndex两个成员函数用于给接口成员Index赋值。
2、 添加方法接口
我们现在CMCDocxCtrl类中添加两个SHORT类型的成员,m_a,m_b,在接口中用于分别给这两个成员赋值。
右键选中_DMCDocx,添加->添加方法。
添加完成后在生成SetNumbers的接口
同时在CMCDocxCtrl类中生成了对应的成员函数
3、 添加事件接口
类视图中选中CMCDocxCtrl类,右击->添加->添加事件。
事件分为两种,一种是常用事件,一种是自定义事件。常用事件包括单击、双击等一些常见的事件,点击完成后,会自动生成事件接口。
另外一种自定义事件,事件名称自定义,点击完成后可以在CMCDocxCtrl和接口中分别生成自定义的事件。
可以在CMCDocxCtrl类中定义自定义事件的触发条件,如下图所示在鼠标右键点击时触发该自定义事件。
三 oxc控件的注册
Active控件在开发完成之后,需要先进行注册才能使用。
注册方法如下图所示(若是win7系统,可能需要管理员权限运行cmd窗口才能注册成功)
卸载方法如下:
四 oxc控件的测试。
在VS2010中开发MFC ActiveX控件,开发完后,通常使用VS自带的容器ActiveX Control Test Container来运行ActiveX控件。此容器在VS安装后的文件中是找不到的,需要自己手动获取。如下所述:
(1)按照你的VS所安装的路径,找到VC2010Samples.zip这个压缩文件,其在Samples下的名为2052文件夹中,
如在我的电脑上,其所在路径为:C:\Program Files\Microsoft Visual Studio 10.0\Samples\2052
\VC2010Samples.zip。
(我的电脑路径为C:\Program Files\Microsoft Visual Studio 10.0\Samples\1033\VC2010Samples.zip)
(2)找到这个压缩文件后,将其减压到当前文件夹中。
(3)按照如下路径C:\Program Files\Microsoft Visual Studio 10.0\Samples\2052
\VC2010Samples\C++\MFC\ole找到TstCon这个文件夹。打开这个文件夹,可发现有两个资源解决方案TCProps
和TstCon。
(我的电脑路径为 C:\Program Files\Microsoft Visual Studio 10.0\Samples\1033\C++\MFC\ole\TstCon)
(4)在VS2010中打开这两个解决方案(file-open-project/solution,选择TstCon.vcxproj打开)。
(5)将Tcprops设为启动项,方法:在解决方案Tcprops上右击,选择“设为启动项目”;然后对它进行编译F7。
同样地,再将TstCon设为启动项,对它进行编译F7。
(6)编译完后,就可在TstCon文件夹下的Debug文件夹中看到TstCon32.exe文件。
(在我的电脑上生成TstCon.exe)
(7)在首次运行MFC ActiveX控件时,需要设置调试器命令及调试器工作目录。项目—属性—配置属性—调试,设置命令及工作目录即可。(这个方法我没有试,我用的是下边的方法)
打开VS2010,点 “工具tool”-->“外部工具external tool”,再点击“添加add”按钮,再在下面的“标题title”栏里,修改为TstCon(名称随便取),再在 “命令command”栏里,选择第一步里编译好的TstCon.exe,再点“应用”,“确定”按钮即可。然后就可以在VC2010里点 “工具”-->“TstCon”,就可以象VC6那样测试ActiveX控件了。