什么是ActiveX?一句话,ActiveX就是这样的一个产品,Microsoft把它提供给广大的开发人员,使他们能够把计算机桌面环境与构成Internet及其大量资源的环境集成起来,同时保护在Windows技术中现有的开发环境。
ActiveX包括对两个现有Microsoft技术的一系列扩充和增强,这两个技术是:Windows32位应用编程接口(Win32API)和组件对象模型(COM),对象链接和嵌入(OLE)应用是基于它构造的。
在VC5.0中,提供大量的ActiveX控件,合理的运用将给开发人员带来很大的方便,不论是界面的设计,还是程序应用的合理扩展,都将给VC的开发人员带来更广泛的创造空间和代码的高度重复利用率。
下面介绍以下两种在VC5.0中使用ActiveX控件的方法:
在对话框中使用ActiveX控件的方法。
在对话框中使用ActiveX控件是非常方便的,其方法非常象使用其他的工具栏中提供的默认控件,具体步骤如下:
A、创建一个新的对话框。
B、在对话框中单击右键,会出现一个POPUP菜单,选择其中的InsertActiveXControl选项。
C、出现一个列表框,其中有许多的ActiveX控件供你挑选,选择其一,并双击将它插入对话框。
D、你可以任意对它的属性进行编辑,方法与通用控件是相同的。
E、编辑结束后,双击对话框将其生成一个新的继承对话框类,VC会自动将此ActiveX的类定义极其类函数的说明和描述(*.h,*.cpp),你可根据其提供的函数进行操作。
这种方法简便易行,一些实现特殊功能的ActiveX控件(例如,一个做好万年历控件)的应用,将给你带来意想不到的便利。
在视中使用ActiveX的方法。
我们可能不仅仅在对话框中使用ActiveX控件,虽然我们可以使用CFormView类继承我们的插入ActiveX的对话框类,但是我们也会在使用分割窗口时遇到问题,因为CMDIChildWnd类的分割视是不能嵌入CFormView类的。那么我们要在分割视中使用ActiveX控件应该如何办呢?没问题,我们来手工创建吧!
方法如下:
A、创建好你准备嵌入ActiveX控件的视。
B、在project菜单中选择AddToProject-ΛComponentandControl。
C、在ListBox中有两项,一个DevelopStudiocomponents,一个RegisteredActiveXControl,都可选择,从中你会选到自己需要的控件。
D、选择之前,你可先单击MoreInfo,了解以下这个ActiveX的功能,properties、events、Methods以及你要用到的控件的名称(*.OCX)和你所需要的一切关于这个ActiveX的信息。
E、选择Insert,VC会自动将其即将加入的各种类的名称及文件名称提示给用户,确认后,你就可以使用它了。
F、在你的CView类中加入WMμCREATE消息,在*.h文件中加入此ActiveX的*.h文件的说明,并定义一个事例,在OnCreate()中准备用Create()创建这个ActiveX事例。
G、所有ActiveX控件的Create()函数的格式都是相同的,如下:
BOOLCreate(LPCTSTRlpszWindowName,DWORDdwStyle,
constRECT&rect,CWnd*pParentWnd,UINTnID,
CFile*pPersistΚNULL,BOOLbStorageΚFALSE,
BSTRbstrLicKeyΚNULL)
LPCTSTRlpszWindowName:ActiveX的标题
DWORDdwStyle:创建的风格
constRECT&rect:控件的大小和位置
CWnd*pParentWnd:父窗口的描述(通常为NULL)
UINTnID:定义的消息
CFile*pPersistΚNULL:
BOOLbStorageΚFALSE:
BSTRbstrLicKeyΚNULL:
H、ActiveX控件的头文件中你都可以找到声名的函数
调用方法,从容地使用函数,从容地使用ActiveX控件,我们会作出更好的软件。
下面简单介绍一个控件使用的程序。
实现功能:
在一个CView类中嵌入CRichText5.0Control,实现在视中显示RTF文件,通过调用其文件名的方法。笔者只简单应用了Create()和SetFileName()。
CView类的头文件中加入:
#defineIDM—RICHTEXT1000//ActiveX实例的消息定义
#include″richtext.h″//AcitveX头文件的调用
CRichTextm—richtext;//ActiveX的实例声明
protected:
//{{AFX—MSG(l—NewsContent)
afx—msgintOnCreate(LPCREATESTRUCTlpCreateStruct);
//OnCreate()函数声明
//}}AFX—MSG
CView类的CPP文件中加入:
intl—NewsContent::OnCreate(LPCREATESTRUCTl pCreateStruct)
{
CRectrect;
SetRect(&rect,0,0,800,600);
m—richtext.Create(″″,ES—MULTILINE WS—VISIBLE WS—CHILD
ES—AUTOHSCROLL
ES—AUTOVSCROLL,rect,this,IDMμRICHTEXT,NULL,FALSE,NULL);
m—richtext.SetFileName(″c:ιιli1.rtf″);//显示″c:ιli1.rtf″文件
CStringli1Κm—richtext.GetTextRTF();//获取控件内容
CStringli2Κ″中国计算机报″;//指定控件显示内容
m—richtext.SetTextRTF(li2);
}
AcitveX文件的头文件定义:
classCRichText:publicCWnd//richtext.h
{
public:
BOOLCreate(LPCTSTRlpszWindowName,DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID,CFile*pPersistΚNULL,BOOLbStorageΚFALSE,BSTRbstrLicKeyΚNULL)
public:
CStringGetFileName();//获取文件名
voidSetFileName(LPCTSTRlpszNewValue);//指定文件名
CStringGetTextRTF();//获取RTF文本
voidSetTextRTF(LPCTSTRlpszNewValue);//指定RTF文本
voidLoadFile(LPCTSTRbstrFilename,constVARIANT&vFileType);
voidRefresh();//清除全部内容
voidSaveFile(LPCTSTRbstrFilename,constVARIANT&vFlags);//存储RTF文本
};
最后,如果你想先测试一下某一ActiveX控件的功能,你可以使用VC提供的工具ActiveXControlTestContainer,它的强大功能一定能满足你的好奇心。
让我们更好的使用ActiveX,用最大的方便,最简单的方法,作出最好的软件。
文章来源于领测软件测试网 https://www.ltesting.net/