当前位置:   article > 正文

ATL 基本介绍_atl项目

atl项目

ATL 活动模板库,一系列的基于模板的C++ 类,使得开发COM 对象更加方便,它特别支持了关键的COM 功能,包括库存实现,,双接口,标准COM 枚举器接口,连接点,和ActiveX 控件。

如果进行大量的ATL 编程,将有需要了解有关属性的更多信息,这是Visual C++.NET 中旨在简化COM 编程的新功能。

ATL 致力于简化创建高效、灵活、轻量的控件的过程。下面示例演示ActiveX 控件的创建,演示许多ATL 和COM 基础知识。

1. 默认生成项目(这里生成的是进程内DLL)

文件列表及功能如下:

文件描述
Polygon.cpp包含DllMain、DllCanUnloadNow、DllGetClassObject、DllRegisterServer和DllUnregisterServer 的实现。以及一个对象map,是你的项目里的ATL 对象的列表。这里最初是空白的
Polygon.def模块定义文件,给链接器提供了DLL 导出所需要的信息
Polygon.idlIDL 文件,描述了你的对象的接口
Polygon.rgs注册表脚本,包含了注册你的程序的DLL 的信息
Polygon.rc资源文件,初始时包含版本信息,以及项目名的字符串
Resource.h资源文件的头文件
Polygonps.def跨套间调用需要的代理和存根所需要的模块定义文件
stdafx.cpp将包含ATL 实现文件
stdafx.h包含ATL 模

2. 添加ATL 控件

ATL 控件向导中包含的名称及含义如下:

成员内容
short name为控件起的名字
Classc++ 类名,用来实现该控件
.h 文件包含C++ 类的定义
.cppC++ 类的实现
CoClass这个控件的组件类
Interface接口的名字,控件将实现它的定制方法和属性
Type控件的描述
ProgID可读的可以用来查找控件的CLSID 的名字

支持丰富的错误信息和连接点

输入了控件名之后,不要点击确定,做一些属性的小修改:点击选项,选择,连接点:这将为IDL 文件中的传出接口创建支持。也可以添加接口,以扩展控件的功能。

扩展控件的功能

点击接口,添加IProvideClassInfo2和ISpecifyPropertyPages接口

使控件可插入

外观->可插入选择框

添加填充色属性

属性-->添加Fill Color属性

添加的文件和描述如下

文件描述
PolyCtl.h包含CPolyCtl C++类的大部分实现
PolyCtl.cppCPolyCtl 的剩下的部分
PolyCtl.rgs用来注册控件的注册表脚本
PolyCtl.htm一个web 页面,包含对新创建的控件的引用

向导将做如下代码改变:

1. 在stdafx.h和stdafx.cpp文件中添加了#include语句,以包含支持控件所需的ATL文件。

2. 更改了Polygon.idl以包含新控件的详细信息。

3. 将新控件添加到Polygon.cpp中的对象映射。

 

给控件添加属性

这里有一点需要注意,它的向导,和实际有一些出入:

  1. public CComControl<CPolyCtl>,
  2. public IProvideClassInfo2Impl<&CLSID_PolyCtl, &DIID__IPolyCtlEvents, &LIBID_PolygonLib>

这个代码并不需要添加

添加事件:

_IPolyCtrlEvents_CP.h 没有public 属性,得自己添加public 关键字

 

最后的那个浏览器加载的实验,需要 使用ie 浏览器。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/316132
推荐阅读
相关标签
  

闽ICP备14008679号