简介
WTL 在开发者之间的悄悄传播已经超过一年了, 传闻它是基于ATL的,并在微软内部使用.这理所当然的引起了ATL开发者社区的主意.这些人从ATL1.1开始,就一直为ATL控件书写UI代码,但是他们发现,他们的所写的代码常常就是纯的Win32 GDI代码.我告诉您, WTL并没有多大不同.
是不是让人失望? 不,因为ATL只是对COM进行了简单的封装,这也是ATL的强大之处. 是的,写ATL您必须通晓COM. 您在ATL上额外花费的功夫跟您学习COM所作的努力比起来,简直微不足道.这跟那些需要把主要精力花费在学习类库本身,忽略COM的库是完全不同的.
WTL与此类似.您需要懂得Win32窗口技术和GDI.只要您懂得,学习WTL就似清风抚面,再简单不过了.如果您不懂 这些,那么您最好使用VB来写UI代码.
WTL有什么?
它给各种类型的应用程序提供了一个基本的框架.注意,虽然您没有MFC那样的文档/视结构,但是您有视(views). 在WTL有大量的代码让您来管理视,而且加入您自己的代码也很容易. WTL有AppWizard,可以让您生成SDI, MDI 和多线程SDI程序多线程SDI跟IE或Windows Explorer很像.它看起来是打开了多个程序实例,实际上这些窗口都是属于一个进程的).
另外,您的程序可以是基于对话框的,也可以是基于视的.视可以是基于CWindowImpl的,也可以是基于控件,甚至是IE里的一个HTML页.您可以选择您的程序是否需要一个rebar, command bar (CE-like), toolbar 和/或status bar.另外,您的程序可以主持ActiveX控件,以及成为一个COM服务器.
这里有几个关于视的选项. WTL提供splitter窗口类(这样在一个视里您可以有两个窗口)和scroll窗口类(这样您的窗口可以比它显示的"视"小). WTL也有个类似MFC的UpDateUI的东西,但是它们不是很一样 - 主要的区别是您需要把需要更新的项用宏映射标注出来,然后您在您的类里加入执行UpdateUI的代码. DDX/DDV在WTL也支持,同样类似MFC,但有不同. 您必须加一个宏映射来实现DoDataExchange,然后加入调用它的代码.
现在WTL也有GDI类了.然而,HDC的封装类就像CWindow一样,只进行了很简单的封装 - 它几乎没有加入任何新的功能.不过,在WTL,你可以得到播放meta文件和OpenGL支持. 最有价值的我猜应该是打印机DC的那些继承类 - WTL有打印机支持,甚至打印预览. 当然也有GDI对象的封装. 诸如画笔,画刷,区域等.
WTL对所有的Win32 (和W2K) 通用对话框进行了封装.同样尽管简单,但是它的确使请求字体或者文件变的非常的简单.
合成了旧的AtlControls.h,新加了一些封装类. 这些封装类封装了W2K控件,以及一些不属于Win32的"控件",像Command Bar, bitmap button, hyperlink 和 wait cursor.
WTL 最终把消息分离带入了ATL! 一些新的MSG映射宏将消息分离,调用您类里的消息处理函数.消息处理函数的参数的值是从消息分离得到的.唯一令人头痛的是,您需要查看头文件以确定函数参数的意义.
最后,WTL还有一些实用类.最重要的是CString. 不错,它是从MFC克隆得到的(copy on write),具有(在我知道的范围内)MFC版本的所有方法.还有查找文件的API的封装类,以及CRect, CSize and CPoint.
WTL中没有什么?
没有Document支持
WTL提供了frame和view,但是没有document。WTL所关注的是用户界面,而document是不可见的,所以它不是WTL关心的范围。
没有Active Document支持
没有ISAPI支持
没有WinInet支持
没有对线程和同步进行包装
没有数据库支持
总结
如果您打算写一个Win32 界面程序,我建议您在考虑MFC之前,先试试WTL.使用WTL来写您的代码, 程序将变得小巧些,也更有效率些.使用WTL, 您还将得到ATL支持COM好处.您可以在2000年一月份的平台SDK中找到WTL.在MSI选项页的Source Code section下.
分享到:
相关推荐
**WTL(Windows Template Library)** 是一个轻量级的C++库,由Microsoft开发,主要用于构建Windows应用程序。它提供了一套模板类,方便开发者直接操作Windows API,从而简化了Win32编程的过程。WTL是MFC(Microsoft...
**WTL 控件库 v1.3:深入解析与应用** Windows Template Library(WTL)是一种轻量级的C++库,由微软开发并维护,主要用于构建Windows应用程序。WTL是ATL(Active Template Library)的扩展,它提供了一种高效、...
WTL 编程指南 WTL(Windows Template Library)是一种基于C++模板的库,提供了一组类和函数,帮助开发人员快速构建Windows应用程序。该指南旨在帮助MFC程序员学习和使用WTL,提供了详细的教程和示例代码。 1. WTL ...
Windows Template Library (WTL) 是一个轻量级的C++库,主要由Microsoft开发,用于构建Windows应用程序。WTL10版本是这个库的一个特定迭代,它为Visual Studio 2017提供支持。在将WTL10整合到VS2017时,可能会遇到...
Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components. It extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, ...
Windows Template Library(WTL)是Microsoft提供的一种C++库,用于构建轻量级Windows应用程序。它扩展了ATL(Active Template Library),提供了更多的用户界面元素和控件,使得开发者能够更方便地创建原生的Win32...
Windows Template Library(WTL)是Microsoft提供的一种轻量级的C++库,它扩展了ATL(Active Template Library)以支持开发Windows GUI应用程序。WTL的各个版本不断更新,为开发者提供了更多的功能和改进,使其更...
**Windows Template Library (WTL) 指南与 WTL7.1** Windows Template Library (WTL) 是一个轻量级的C++库,由Microsoft开发,用于构建Windows应用程序。WTL是MFC(Microsoft Foundation Classes)的一个替代方案,...
Windows Template Library(WTL)是Microsoft提供的一种轻量级库,用于开发Windows应用程序。它基于Active Template Library (ATL),并扩展了ATL的功能,使其更适用于构建用户界面。WTL使得开发者能够以高效且直接的...
**WTL插件:WTL Helper与Visual FC详解** Windows Template Library(WTL)是由Microsoft开发的一个C++库,主要用于构建轻量级Windows应用程序,包括桌面应用、COM组件以及ATL COM服务器。WTL插件则是一些扩展工具...
WTL_Freecell v1.2 (WTL空当接龙v1.2) 20180112 本程序主要特点介绍: 1、本程序全部使用WTL编程,VS2017编译,程序短小精悍,不依赖VC运行库; 2、本程序支持XP/7/8/8.1/10及相应Server版Windows系统; 3、本...
### 深入剖析WTL:WTL学习教程 #### Win32模型 在深入了解WTL之前,我们先从基础的Win32模型入手。Win32模型是微软为Windows平台设计的一套API集合,旨在简化Windows应用程序的开发。本文档主要介绍了Win32模型中...
WTL_Freecell-Release04-v1.3-20190126 (WTL空当接龙v1.3) 本程序主要特点介绍: 1、本程序全部使用WTL编程,VS2017编译,程序短小精悍,不依赖VC运行库; 2、本程序支持XP/7/8/8.1/10及相应Server版Windows系统...
在Windows开发领域,WTL(Windows Template Library)是一种轻量级的C++库,它提供了对Windows API的封装,使得开发者能够更容易地构建基于Windows的原生应用程序。WTL是ATL(Active Template Library)的一个扩展,...
**Windows Template Library (WTL)** 是一个轻量级的C++库,由Microsoft开发,用于构建Windows应用程序。WTL是MFC(Microsoft Foundation Classes)的一个补充,它提供了一个更接近WinAPI的接口,使得开发者可以编写...
WTL(Windows Template Library)是Microsoft提供的一种轻量级的C++库,用于构建Windows桌面应用程序。这个库基于ATL(Active Template Library),并扩展了对用户界面元素的支持,使得开发者能够更高效地创建功能...
《mfc程序员的wtl指南》是一份专为MFC(Microsoft Foundation Classes)开发者准备的珍贵资源,旨在帮助他们理解和掌握WTL(Windows Template Library)。WTL是微软提供的一套C++库,它允许开发者更高效地编写轻量级...
标题“MFC程序员的WTL指南”指向了一个特定的技术路线探索:即通过WTL(Windows Template Library)为MFC(Microsoft Foundation Classes)程序员提供一种新的开发选择。MFC作为一套老旧的C++库,在提供功能强大的...
Windows Template Library(WTL)是Microsoft提供的一种轻量级的C++库,用于构建Windows应用程序。这个“WTL教程合集|WTL开发者指南”涵盖了关于如何使用WTL进行高效开发的各种主题,包括基础概念、类库结构、窗口...
Windows Template Library(WTL)是Microsoft提供的一种轻量级库,用于开发Windows应用程序。这个教程分为两个部分,WTLPart1和WTLPart2,分别深入介绍了WTL的基础和高级特性。 WTL是Windows API的C++模板封装,它...