2024年4月2日发(作者:)

使用MFC开发ActiveX控件全过程

Visual C++是开发ActiveX控件的强大工具,它的特点是开发周期短、便于使用,因此它已经成

为开发ActiveX控件的主要工具之一。Visual C++集成开发环境,使用了微软自己的类库MFC,MF

C对开发ActiveX控件提供了全面的支持,本文讲述的过程均在Visual C++ 6.0(以下简称VC)中

实现。

1、 创建工程:

对于使用过VC的人,可以很容易地创建一个开发ActiveX控件的工程,没有使用过VC的人,按

照下面的操作步骤,也可以很快创建一个同样的工程出来。

第一步:“File”—>“New”—>“(Projects)MFC ActiveX ControlWizard”,在“Project N

ame”中输入合适的工程名(以test为例),在“Location”中选择工程文件存放路径,然后,“OK”

进入下一步;

第二步:选择你想在这个工程中生成的ActiveX控件的个数(至少一个),其余选项决定是否生成

一些辅助文件,通常按照默认设置即可,“Next”进入下一步;

第三步:编辑你的工程中各个类和文件的名称,配置一些辅助选项,可以全部选择默认设置,“Fi

nish”进入下一步;

第四步:展示向导为你的工程生成的各种配置信息,“Cancel”重新设置不满意的选项,“OK”

结束工程的创建。

2、 绘制控件:

MFC将对ActiveX控件的支持封装在COleControl类中,所有ActiveX控件均从这个类

派生。绘制控件的全部操作则集中在一个虚函数中—OnDraw(),其默认实现如下:

void CTestCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)

{

// TODO: Replace the following code with your own drawing code.

pdc->FillRect(rcBounds,

CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));

pdc->Ellipse(rcBounds);

}

可以看到,OnDraw()函数的默认实现是在矩形rcBounds中绘制一个椭圆,通过改写OnDraw()

函数中的内容,就可以绘制自己想要的控件了。需要注意的一点,控件的绘制被限制在矩形rcBound

s中,绘制范围不能超出这个矩形。

3、 添加属性:

ActiveX控件提供了三种类型的属性供用户选择:公共属性、具有通知特性的属性和Get/Set

类型的属性。下面依次对三种类型属性的添加、初始化、新属性值的获取和属性的永久保存,分