WTL(Windows Template Library),我自己叫他“窗口模板库”,它其实是ATL的一个扩展,ATL仅仅给我们提供了一些简单的窗口类, 以前写ActiveX控件写点界面还真是很难,现在有了它不用发愁了。WTL是都是模板所以效率高体积小,现在越来越多的人都在用它。WTL不仅封装了通用的窗口和控件,而且把GDI也向MFC一样封装了一遍,但是和MFC不同的是,WTL封装的这套GDI类底层画法不仅仅使只用gdi的api,它竟然还用到了OpenGL,那天我在源代码中发现了一些OpenGL库的引用使我惊奇万分?至于为什么要这么做,我还没有找到确切的答案。
下面是AtlGdi.h的一段代码:
// required libraries
#if !defined(_ATL_NO_MSIMG) && !defined(_WIN32_WCE)
#pragma comment(lib, "msimg32.lib")
#endif // !defined(_ATL_NO_MSIMG) && !defined(_WIN32_WCE)
#if !defined(_ATL_NO_OPENGL) && !defined(_WIN32_WCE)
#pragma comment(lib, "opengl32.lib") //这里加上了OpenGL的库
#endif // !defined(_ATL_NO_OPENGL) && !defined(_WIN32_WCE)
//看看下面的类名是不是很熟悉呢?hoho
///
// Classes in this file:
//
下面是AtlGdi.h的一段代码:
// required libraries
#if !defined(_ATL_NO_MSIMG) && !defined(_WIN32_WCE)
#pragma comment(lib, "msimg32.lib")
#endif // !defined(_ATL_NO_MSIMG) && !defined(_WIN32_WCE)
#if !defined(_ATL_NO_OPENGL) && !defined(_WIN32_WCE)
#pragma comment(lib, "opengl32.lib") //这里加上了OpenGL的库
#endif // !defined(_ATL_NO_OPENGL) && !defined(_WIN32_WCE)
//看看下面的类名是不是很熟悉呢?hoho
///
// Classes in this file:
//