WTL开发者指南
注:本文是袁晓辉根据Eamon O’ Tuathail的WTL Developer’s Guide(www.clipcode.biz )翻译而来,发布在www.farproc.com 和 blog.csdn.net。作者翻译本文仅仅是为自己和其他WTL爱好者学习之用,请勿用于商业用途。你可以转载本文,但必须保证本文的完整性,并保留该声明!
第1章WTL概述
目标
该章的目标为:
ŸWTL在整个VC++开发中所处的位置
ŸWTL的目标
ŸWTL和其他用户界面(UI)开发技术的对比
Ÿ介绍WTL的安装
Ÿ介绍WTL安装了什么
Ÿ列举可用的开发资源
Ÿ对后面各章的介绍
概述
以前Visual C++开发者往往选择MFC,因为它提供的功能涵盖了非常广的编程技术领域而模板库所涉及的领域相对狭窄。
最近模板库涉足的领域和质量都有很大发展,因而越来越多的人选择了模板库。
ATL设计的目标是提供快速紧凑的COM组件,ISO C++的STL提供集合(collections),VC++ OLE DB Data Consumer and Provider模板提供数据库支持。与之相对应,MFC提供了一个C++类库,这个类库包含对COM创建、集合类(collection class)、数据库和用户界面的普遍支持。
大部分的高级开发人员更喜欢较新的模板开发方式。MFC很庞大、臃肿、对线程不友好,并且,基本上已经过时了!模板的方法既快速(当正确设计时)、有弹性而且涵盖了所有最新的技术,拿来应对新的开发需要是再好不过的了。
到目前为止,让模板狂热分子头疼的主要问题在于如何创建图形用户界面(GUI)。ATL确实提供了一个轻量级的Win32/64 windowing包装类,但是它并没有涵盖所有的UI需求。ATL开发者为了琐碎的用户界面处理不得不重操MFC UI编程或者用VB给自己的ATL COM做前端,这两种方法都不能完全令人满意。
进入正题,开始说窗口模板库(Windows Template Library)。WTL是一个居于Win32/64 API之上的一个包装类和方便易用的增强模板的高级集合,它对图形用户界面提供了广泛的支持。WTL不但保持着模板库的真正血统,小巧,快速,不具侵入性而且包括了最新的UI理念,非常好地支持多线程。你可以单独使用WTL或和ATL、STL、VC++ Data Templates、第三方类库,以及你自己的类库一起使用以便利用他们各自的优点。WTL通常不依赖外部的DLLs,如果你用WTL开发程序的话,你提供给最终用户的可以只有一个EXE文件。
WTL的目标
WTL之于用户界面就像ATL之于COM、STL之于collection。和它的堂兄一样,WTL需要一段时间来学习,但是一旦掌握了,就没有比它更好的开发高级程序的途径了。从本质上说,WTL完成了三个重大任务:
提供了一个应用程序框架(framwork)
集合了UI功能
包装了windows控件、系统对话框和GDI对象