ATL被设计用来简化创建高效,稳固,轻量级控件的过程。该教程全面引导你进行一个ActiveX控件的创建,示范许多ATL和COM基本原理。
该教程不是用属性化(attributes)。
随着下面的教程,你将学习怎样添加控件到ATL工程,该控件在多边形中画园和进行填充。你将添加一个属性来表示多边形的边数并且创建一个绘制代码在属性改变时候来更新控件。该控件然后将显示在WEB页面中并使用VBScript使它响应事件。
1. 创建工程
该教程逐步让你利用一个非属性化(nonattributed)ATL工程来创建一个显示多边形的Activex对象。该对象包括允许用户改变边数来拼凑多边形以及用代码来刷新显示。
使用ATL Project向导创建初始的ATL工程
(1) 在Visual Studio开发环境中,在File菜单中单击New,然后单击Project
(2) 打开Visual C++ Project文件夹并选择ATL Project
(3) 输入Polygon作为工程名字
对话框如下所示:
源码的位置通常缺省在My Documents\Visual Studio Projects,之后一个新的文件夹将被创建。
(4) 单击OK后打开ATL Project Wizard
(5) 单击Application Settings去设置有效的选项,Application Settings如下所示
(6) 由于你是创建一个控件,以及控件必须是在进程内服务器,让Server type为DLL
(7) 在该教程中,由于你不使用属性,所以确信Attributed复选框没有被选中。
(8) 不用管其他选项的缺省值,单击Finish
ATL Porject向导将创建工程并生成几个文件,你可以在Solution Explorer中展开Polygon对象来查看这些文件。文件列表如下:
文件
描述
Polygon.cpp
包含DllMain DllMain, DllCanUnloadNow, DllGetClassObject, DllRegisterServer, 和 DllUnregisterServer的实现. 也包含对象映射表(object map),它是在你工程中得一列 ATL对象. 最初是空白的,因为你还没有创建一个对象.
Polygon.def
模块定义(module-definition file)文件提供和DLL输出有关的链接信息.
Polygon.idl
接口定义语言文件(interface definition language file)描述对象的接口细节.
Polygon.rgs
注册表脚本(registry script)包含注册DLL的信息.
Polygon.rc
资源文件,它最初包含版本信息和包含工程名称的字符串.
Resource.h
资源文件的头文件.
Polygonps.def
该模块定义文件(module definition file)提供支持calls across apartments 的proxy和stub必需的输出链接器信息.
stdafx.cpp
该文件 #include ATL实现文件.
stdafx.h
该文件#includeATL头文件.
在下一步,你将添加一个控件到你的工程中。