文档介绍:MICROSOFT
2008
MFC程序员的WTL指南
开发文档
wzj
[键入公司地址]
序言 3
第一章ATL 界面类 4
、对本书的总体介绍 4
、对这一章的简单介绍 5
、ATLfor MFC Programmers”系列文章,我的感觉和1995年我第一次见到MSDN时一样,几乎是迫不及待地将其读完,同时也萌发了将其翻译成汉语的冲动。于是给Michael写了封邮件,希望能够得到授权将他的文章翻译成汉语(事实上在这之前我已经翻译了两章了)。在得到授权确认后才发现这个工作是多么的困难,但为时已晚,只能硬着头皮撑下去。
第一章ATL 界面类
你需要开发平台SDK。你要使用WTL不能没有它,你可以使用在线升级安装开发平台SDK,也可以下载全部文件后在本地安装。在使用之前要将SDK的包含文件(.h头 文件)和库文件(.Lib文件)路径添加到VC的搜索目录,SDK有现成的工具完成这个工作,这个工具位于开发平台SDK程序组的“Visual Studio Registration”文件夹里(这是针对VC++)。
你需要安装 WTL。,在安装之前可以先查看“Intro duction to WTL - Part 1”和“Easy installation of WTL”这两篇文章,了解一下所要安装的文件的信息,虽然现在这些文章有些过时,但还是可以提供很多有用的信息。有一件我认为不该在本篇文章中提到的事是告诉VC如何搜索WTL的包含文件路径,如果你用的VC6,用鼠标点击 Tools\Options,转到Directories标签页,在显示路径的列表框中选择Include Files,然后将WTL的包含文件的存放路径添加到包含文件搜索路径列表中。
你需要了解MFC。很好地了解MFC将有助于你理解后面提到的有关消息映射的宏并能够编辑那些标有“不要编辑(DO NOT EDIT)”的代码而不会出现问题。
你需要清楚地知道如何使用Win32 API编程。如果你是直接从MFC开始学习Windows编程,没有学过API级别的消息处理方式,那很不幸你会在使用WTL时遇到麻烦。如果不了解 Windows消息中WPARAM参数和LPARAM参数的意义,则需要读一些这方面的文章(在CodeProject有大量的此类文章)。
你需要知道 C++ 模板的语法,你可以到VC Forum FAQ 相关的连接寻求答案。
我只是讨论了一些涵盖VC 6的特点,不过据我了解所有的程序都可以在VC 7上使用。由于我不使用VC 7,我无法对那些在VC 7中出现的问题提供帮助,不过你还是可以放心的在此张贴你的问题,因为其他的人可能会帮助你。
、对本书的总体介绍
WTL具有两面性,确实是这样的。虽然它没有MFC的界面类库那样强大的功能,但是能够生成很小的应用程序。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装类使用起来非常舒服,更不用说MFC内置的消息处理机制。当然,如果你也象我一样不希望自己的程序仅仅因为使用了MFC的框架就增加几百K的大小的话,WTL就是你的选择。当然,我们还要克服一些障碍:
ATL样式的模板类初看起来有点怪异 ;
没有类向导的支持,所以要手工处理所有的消息映射(名叫VisualFC的第三方插件可以提供相应向导);
MSDN没有正式的文档支持,你需要到处去收集有关的文档,甚至是查看WTL的源代码;
买不到参考书籍;
没有微软的官方支持;
ATL/WTL的窗口与MFC的窗口有很大的不同,你所了解的有关MFC的知识并不完全适用于WTL。
从另一方面来讲,WTL也有它自身的优势:
不需要学习或掌握复杂的文档/视图框架;
具有MFC的基本的界面特色,比如DDX/DDV和命令状态UI更新功能(比如菜单的Check标记和Enable标记等);
增强了一些MFC的特性(比如更加易用的分隔窗口);
可生成比静态链接的MFC程序更小的应用程序(WTL的所有源代码都是静态链接到你的程序中的,除了CRT之类);
你可以修正自己使用的WTL中的BUG,而不会影响其他的应用程序(相比之下,如果你修正了有BUG的MFC/CRT动态库就可能会引起其它应用程序的崩溃;
如果你仍然需要使用MFC,MFC的窗口和ATL/WTL的窗口可以“和平共处”。
在本文中,我将首先介绍ATL的窗口类,毕竟WTL是构建于ATL之上的,并附加了一系列类,所以需要很好地了解ATL的窗口类。介绍完ATL之后我将介绍WTL的特性,并展示它是如何使界面编程变得轻而易举。
、对这一章的简单介