`

Windows Template Library (WTL)相关资料学习

    博客分类:
  • C++
阅读更多

 

初识 WTL( )
作者: orange

 

下载本文示例工程

 

 

1 .前言

 

虽然 MFC 的功能很强大,但 Windows Template Library(WTL) 的出现,无疑说明了 MFC 有一定的弊病。和 MFC 相比,功能并没有 MFC 完善。比如 MFC 支持 doc/view 架构,而 WTL 不支持。同时, WTL 也没有 Microsoft 的官方支持。但是, WTL 是基于模版 (template) 的,其应用程序最小只有 24KB ,同时不象 MFC ,依赖 DLL 。但是 WTL 也实现了 CString CRect CSize CPoint 等常用的类,还 CStaticT<TBase> CButtonT<TBase> CListBoxT<TBase> CComboBoxT<TBase>( 这些在 WTL 库文件 atlctrls.h atlctrlw.h atlctrlx.h 中就能看到 ) 用起来和 MFC 版本也没太大不同。

 

2 .准备工作

 

首先安装 WTL AppWizard, 现在最高版本应该是 WTL7.0, 直接运行 setup 脚本文件就可以了 , 这里给大家几个下载地址 :

 

1) http://www.vckbase.com/tools/listtools.asp?tclsid=111

 

2)http://www.microsoft.com/downloads/details.aspx?familyid=128e26ee-2112-4cf7-b28e-7727d9a1f288&displaylang=en

 

3) http://www.copathway.com/vchelp/zsrc/wtlm.asp?type_id=70&class_id=1&cata_id=3&article_id=374

 

这样当你启动 VC6.0 后, File/New 时,在 Project 属性页就能看到添加了一项 ATL/WTL AppWizard 。你可以直接把 WTL 的库文件 ( 16 .h 文件 ) 拷贝到 vc 的安装目录 VC98/Include 中,也可以放到你的工程文件夹中。

 

3 .应用实例 1---SDI 中状态栏的应用

 

(1) File/New, 如图:

 

<!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" alt="" style='width:431.25pt;height:317.25pt'> <v:imagedata src="file:///C:\DOCUME~1\JACKY_~1\LOCALS~1\Temp\msohtml1\01\clip_image002.gif" o:href="http://www.vckbase.com/document/journal/vckbase22/images/TestWTL2.gif"/> </v:shape><![endif]--><!--[if !vml]--> <!--[endif]-->

 

(2) OK 后,

 

SDI(Single Document Interface) 应用程序通常只有一个主窗口 ( 通常是一个框架窗口, Frame Window) 。框架窗口包含菜单、工具栏、状态栏和称为视 (View) 的客户工作区。

 

Multip-SDI(Multiple Threads SDI) ,就像 IE 浏览器,使用 " 文件 / 新建 / 窗口 " 命令后,会出现另一个 IE 窗口。

 

MDI(Multiple Document Interface) 应用程序有一个主框架窗口,但有多个子框架窗口。每个子窗口都有自己的视 (View), MFC 的相似。

 

Dialog 应用程序是基于对话框的。

 

<!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" alt="" style='width:378pt;height:280.5pt'> <v:imagedata src="file:///C:\DOCUME~1\JACKY_~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png" o:href="http://www.vckbase.com/document/journal/vckbase22/images/TestWTL3.gif"/> </v:shape><![endif]--><!--[if !vml]--> <!--[endif]-->

 

(3) Next

 

<!--[if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" alt="" style='width:378pt;height:4in'> <v:imagedata src="file:///C:\DOCUME~1\JACKY_~1\LOCALS~1\Temp\msohtml1\01\clip_image005.png" o:href="http://www.vckbase.com/document/journal/vckbase22/images/TestWTL4.gif"/> </v:shape><![endif]--><!--[if !vml]--> <!--[endif]-->

 

(4) 在产生的文件中可以看到 WTL 确实不支持 Doc/View.

 

WTL 对单界面线程的封装: WTL 使用一个 _Module 全局变量来保存全局数据,并通过它来引用应用程序级的代码。在 WTL 中,该变量是 CAppModule 的实例,想象 MFC theApp

 

下面对 MyTestWTL.cpp 文件中的函数作一些说明:

 

 

int WINAPI _tWinMain ( HINSTANCE hInstance , HINSTANCE /*hPrevInstance*/ , LPTSTR lpstrCmdLine , int nCmdShow )

 

{

 

HRESULT hRes = :: CoInitialize ( NULL );

 

// If you are running on NT 4.0 or higher you can use the following call instead to

 

// make the EXE free threaded. This means that calls come in on a random RPC thread.

 

// HRESULT hRes = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);

 

 

ATLASSERT ( SUCCEEDED ( hRes ));

 

 

// this resolves ATL window thunking problem when Microsoft Layer for Unicode (MSLU) is used

 

:: DefWindowProc ( NULL , 0 , 0 , <chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="0" unitname="l" w:st="on"><span style="color: purple;">0L</span></chmetcnv>);

 

AtlInitCommonControls ( ICC_COOL_CLASSES | ICC_BAR_CLASSES ); // add flags to support other controls

 

hRes = _Module . Init ( NULL , hInstance );

 

ATLASSERT ( SUCCEEDED ( hRes ));

 

int nRet = Run ( lpstrCmdLine , nCmdShow ); // 程序逻辑,调用全局函数 Run()

 

_Module . Term (); // 终止模块

 

 

:: CoUninitialize ();

 

 

分享到:
评论

相关推荐

    Windows Template Library (WTL)

    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全称为Window Template Library WTL8.0

    WTL全称为Window Template Library WTL8.0WTL全称为Window Template Library WTL8.0WTL全称为Window Template Library WTL8.0WTL全称为Window Template Library WTL8.0

    Windows Template Library - WTL

    Windows Template Library - WTL Version 9.1 (build 5321 final) 2015-11-17。VC++下,COM开发用。

    WTL(Windows Template Library)的初学者指南

    **WTL(Windows Template Library)初学者指南** WTL,全称Windows Template Library,是由Microsoft开发的一个轻量级的C++库,它为构建Windows应用程序提供了底层API接口的封装。对于那些熟悉MFC(Microsoft ...

    Windows Template Library (WTL) 8.0

    Extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more. This version provides support for Windows Vista, Visual Studio 2005, ...

    WTL 9.1 5270 ReadMe 中文 汉化 中英文对照版 01d

    Windows Template Library - WTL Version 9.1 (build 5270) 2015-09-27 Windows模板库 - WTL Version 9.1 (build 5270) 2015-09-27 (水平有限,不足之处,欢迎指正交流:ybmj@vip.163.com) ________________________...

    WTL学习资料中文版(经典入门)

    **Windows Template Library (WTL) 是微软开发的一个轻量级库,主要用于构建高效、小巧的Windows应用程序。这个“WTL学习资料中文版(经典入门)”是为那些已有MFC(Microsoft Foundation Classes)基础的程序员设计...

    WTL91 (Window Template Library)

    **Windows Template Library (WTL)** 是一个轻量级的C++库,由Microsoft开发,用于构建Windows应用程序。WTL是ATL(Active Template Library)的一个扩展,它为开发者提供了构建高效、小型桌面应用程序的框架。ATL...

    深入剖析WTL(Windows Template Library)内部实现机制

    WTL是基于ATL的对Win32界面API的再封装,相比MFC,WTL更加小巧。

    wtl中文教程和示例代码

    Windows Template Library(WTL)是Microsoft提供的一种C++库,用于构建轻量级、高效的Windows应用程序。这个资源,"wtl中文教程和示例代码",显然是为了帮助开发者理解和掌握WTL库,尤其是针对那些已经熟悉MFC...

    WTL 学习资料(实例丰富最好的学习wtl的资料)

    WTL,全称为Windows Template Library,是微软提供的一种轻量级的C++库,用于构建Windows应用程序。这个库是基于ATL(Active Template Library)构建的,它简化了UI开发,使得开发者能够快速创建高效、小巧的应用...

    wtl的学习资料,很不错的

    Windows Template Library(WTL)是微软提供的一种C++库,用于构建轻量级、高效的Windows应用程序。...通过阅读这份中文学习资料,你可以逐步掌握WTL的核心概念和技术,从而提升你的Windows编程能力。

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

    ATL&WTL学习资料(含WTL7.1EXE)

    ATL(Active Template Library)和WTL(Windows Template Library)是Microsoft开发的C++库,主要用于简化Windows应用程序的开发,尤其是用户界面(UI)部分。这两个库都是基于模板的轻量级框架,提供了对COM...

    WTL Guide and WTL7.1

    **Windows Template Library (WTL) 指南与 WTL7.1** Windows Template Library (WTL) 是一个轻量级的C++库,由Microsoft开发,用于构建Windows应用程序。WTL是MFC(Microsoft Foundation Classes)的一个替代方案,...

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

    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(Windows Template Library)是一个轻量级的C++库,用于简化基于Win32 API的应用程序开发。相比于MFC等其他框架,WTL更注重性能和代码效率。接下来,我们将详细分析WTL框架中的窗口管理机制: 1. **窗口类注册*...

    WTL教程(学习)

    **WTL**(Windows Template Library)是一种基于模板的轻量级库,旨在为Windows应用程序开发提供一种高效且资源占用低的解决方案。相较于MFC(Microsoft Foundation Classes),WTL在减少可执行文件大小的同时,保持...

    WTL 学习资源(整合了不少东西,希望对初学者有用)

    5. **书籍**:尽管WTL的书籍不多,但有一些经典的著作,如《Professional Windows Template Library》等,深入讲解了WTL的使用和原理,对于系统学习非常有帮助。 6. **源码分析**:分析WTL库本身的源码也是一个很好...

Global site tag (gtag.js) - Google Analytics