`
javasogo
  • 浏览: 1777282 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

  简介

  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下.

分享到:
评论

相关推荐

    wtl8.0免资源分

    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, ...

    WTL Viewer.rar_WIL查看器和WTL_WTL查看器_wtl_wtl文件查看器_wtl格式

    wtl文件查看器,用于查看wtl文件,只能读取,不能写入文件。

    C++中WTL_和_MFC_编程

    WTL for MFC Programmers, Chinese Version Prologue WTL for MFC Programmers, Chinese Version PrologueWTL for MFC Programmers, Chinese Version Prologue WTL for MFC Programmers, Chinese Version Prologue ...

    WTL 入门学习资料

    感谢网络前辈的无私分享,再整理一下 WTL 的学习文档。 所有源码都能在 VC6,WTL7.0 下编译通过。 具体内容如下: 1、WTL个性设置demo 文档和源码。 2、WTL for MFC Programmers 系列翻译文章,以及源码。 3、WTL ...

    WTL简单教程WTL for MFC Programmers

    WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装使用起来非常舒服,更不用说MFC内置的...

    学习WTL 的基础教程

    WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装使用起来非常舒服,更不用说MFC内置的...

    MFC程序员的WTL编程

    WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装使用起来非常舒服,更不用说MFC内置的...

    WTL for MFC Programmers

    WTL for MFC Programmers, Part II - WTL GUI Base Classes - WTL WTL for MFC Programmers, Part III - Toolbars and Status Bars - WTL WTL for MFC Programmers, Part IV - Dialogs and Controls - WTL WTL for ...

    在VS2013中配置WTL

    微软最新的编程工具Visual Studio 2013 已经发布,想在该平台下使用WTL的话,目前还没有对应的安装文件(一般学者),本人将自己改写的文件上传到CSDN,供朋友使用。改写的版本为 WTL81_12085 第一步:下载文件包...

    C++中ATL与WTL学习

    o ATL 和 WTL 的历史 o ATL 风格的模板 • ATL 窗口类 • 定义窗口实现 o 填充消息映射 • 高级消息映射链和嵌入(Mix-in)类 • ATL EXE 的结构 o VC 6 的情形 o VC 7 的情形 第二部分 - WTL 中的 GUI 基础类 • ...

    WTL 8.1 最新C++界面库

    一般WTL会在微软发布一个Windows 的主要版本之后发布一个版本,比如WTL7 对应XP WTL8对应 Vista,估计Windows 7发布之后,WTL 9会发布,同时将支持W7的新特性。对于MSPL的东西不要有过多的奢求。

    WTL_Freecell v1.0 (WTL空档接龙v1.0) 20180110

    WTL_Freecell v1.0 (WTL空档接龙v1.0) 20180110 本程序全部使用WTL编程,VS2017编译,程序短小精悍,不依赖VC运行库。本程序实现了真正的任意窗口大小,真正实现 全屏 满屏 最大化 大窗口 大图标 大字体。当屏幕...

    WTL教程中文版资料

    WTL 在开发者之间的悄悄传播已经超过一年了, 传闻它是基于ATL的,并在微软内部使用.这理所当然的引起了ATL开发者社区的注意.这些人从ATL1.1开始,就一直为ATL控件书写UI代码,但是他们发现,他们的所写的代码常常就是纯...

    WTL9.1(另附vs2013添加方法)

    This is the eigth public release of WTL, after WTL 3.0, 3.1, 7.0, 7.1, 7.5, 8.0, and 9.0. This version is released under the Microsoft Public License, enabling developers from the WTL community to ...

    WTL_Freecell v1.2 (WTL空当接龙v1.2) 20180112

    WTL_Freecell v1.2 (WTL空当接龙v1.2) 20180112 本程序主要特点介绍: 1、本程序全部使用WTL编程,VS2017编译,程序短小精悍,不依赖VC运行库; 2、本程序支持XP/7/8/8.1/10及相应Server版Windows系统; 3、本...

    WTL Guide and WTL7.1

    WTL Guide and WTL7.1 Exe

    WTL 控件库 v1.3

    WTL 控件库 源码及demo 该demo暂时只演示了button 按钮。

    atl wtl 简要介绍

    WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装使用起来非常舒服,更不用说MFC内置的...

    WTL 9.1 5321 Final Soft and ReadMe中英文对照版 37

    WTL91_5321_Final.zip Windows Template Library - WTL Version 9.1 (build 5321 final) 2015-11-17 Windows模板库WTL 9.1(build 5321 final)2015-11-17 (水平有限,不足之处,欢迎指正交流:ybmj@vip.163.com) ...

    WTL安装包 - 蒋彩阳汉化

    最近使用WTL,使用的IDE是VS2005。觉得默认的WTL实在是不方便。在字体和图片上都不令人满意。尤其是字体,它使用的是“MS Sans Serif”字体,这种字体在中文的操作系统上显得很难看(当然这是我的个人见解)。所以...

Global site tag (gtag.js) - Google Analytics