What is the Windows Template Library you ask?
Brief history
In the beginning when ATL appeared, developers were happy. We had a way to
write fast, small COM components. Well the happiness ended soon after when we
found that we had to write code wrappers for any of the window's controls we
wanted to use. So MS responded to our plight and gave us WTL, completely unfinished
and unsupported (for now).
See WTL Documented for more information.
Features
- All the power of C++
- Thin wrappers for the common controls
- A small but functional Application framework (minus the ever-popular Document-View
Architecture)
- Print and Print Preview support
- Ports of MFC’s
CPoint
, CRect
, CSize
, CString
, etc. - New Message cracking Macros, conceivably they’re an upgrade of the existing ones.
All this but no documentation! Oh well, we're all professionals and can read code, so for
now that will have to suffice.
Where do you get it?
Thanks to Nenad Stefanovic of the WTL development team we now have 2 methods
of downloading the WTL source file (Special thanks to Shannon McCoy for pointing
this out).
Method 1
Click
here to download the WTL source files.
Method 2
Go and get the Platform
SDKs.
WTL resides in the Platform SDKs. To find and install WTL you need to download
the latest release of the Platform SDKs. In the screen seen below, Expand the
Source code tree item and select the Windows Template Library for download.
So, you have the SDKs installed, your ready to go... well almost. Don’t forget
to add the WTL include path to Developer Studio. To do that in Developer Studio
go to Tools | Options and click on the 'Directories' tab. Once you are there
simply add the include path to the 'Include files' list.
What’s in the box?
Let’s take a look at the goodies we got. The WTL is setup so that all the code
resides in header files; it's setup this way so that we have full control of
what is been tacked into your project.
The Headers
File name | Description |
| |
atlapp.h | Message loop, interfaces, general app stuff |
atlcrack.h | Message cracker macros atlctrls.h Standard and common control
classes |
atlctrlw.h | Command bar class atlctrlx.h Bitmap button, check list view,
and other controls |
atlddx.h | Data exchange for dialogs and windows |
atldlgs.h | Common dialog classes, property sheet and page classes |
atlframe.h | Frame window classes, MDI, update UI classes |
atlgdi.h |
DC classes, GDI object classes
|
atlmisc.h |
ATL ports of CPoint , CRect , CSize , CString , etc.
|
atlprint.h |
Printing and print preview
|
atlres.h | Standard resource Ids |
atlscrl.h | Scrollable windows |
atlsplit.h | Splitter windows |
atluser.h | Menu class |
The Samples
Directory | Description |
| |
MTPad |
Multithreaded notepad sample
|
MDIDocVw |
ATL version of the MDI sample
|
GuidGen |
ATL version of the GuidGen sample
|
The App-Wizard
File Name | Description |
| |
AtlApp60.Awx | ATL/WTL AppWizard |
And of course there is a 'readme.txt', which outlines the class hierarchy of
the WTL. Sorry, I said there was no documentation, my bad :)
Thats it! You got the WTL and your ready to go.
Ben Burnett
Ben was born in New Zealand and grew up in Mexico; however, he has lived in Canada for most of his adult life. He has traveled to a few places in Canada so far: British Columbia, Saskatchewan, Manitoba, Ontario and Nova Scotia, but has only ever lived in Alberta —
all over Alberta. From Lethbridge to Calgary to Fort McMurray: he has seen most of what the province has to offer. He has also left the comfort of his—at the time—home country and gone abroad. In recent history he has been in China, New Zealand, the US, Central America and back to Canada (where he now resides).
He completed a degree at the University of Lethbridge, in Computer Science; worked for the University of Wisconsin-Madison in the Computer Sciences Department as a Systems Programmer for the
Condor Research Project[
^]; and is currently completing another degree at the University of Lethbridge, once again, in Computer Science.
Ben has been known to enjoy reading, watching movies, playing console games, and learning everything he can about computers. And, more importantly, with regards to his character: does not usually speaks about himself in the third person.