Windows Template Library

Windows Template Library (WTL) là thư viện lập trình hướng đối tượng C++ mã nguồn mở dùng để phát triển các ứng dụng trên nền tảng hệ điều hành Windows. WTL được tạo ra bởi một nhân viên của Microsoft là Nenad Stefanovic với mục đích ban đầu là chỉ sử dụng nội bộ, nhưng sau đó được tiếp tục phát triển trở thành một bộ thư viện riêng.

WTL ban đầu được phát triển dựa trên bộ thư viện chuẩn của Microsoft ATL (Active Template Library). Việc hỗ trợ xây dựng các ứng dụng COM (Document Object Model) và ActiveX là mục tiêu ban đầu khi xây dựng bộ thư việc này (ATL sau này mới được mở rộng để hỗ trợ COM và ActiveX). WTL có thể được sử dụng để thay thế Microsoft Foundation Classes trong việc xây dựng các ứng dụng có sử dụng GUI (giao diện người dùng đồ họa).

Tổng quan 
WTL hỗ trợ xây dựng nhiều thành phần giao diện khác nhau, từ frame và các cửa sổ popup đến MDI (Multiple Document Interface), các hộp thoại (dialog), các trang thuộc tính (property sheets), các đối tượng GDI...

Hầu hết các lớp (class) trong WTL đều được "template hóa" và sử dụng một cách tối thiểu các hiện thực (instance) và các hàm nội tuyến (inline functions). Những lớp này không được thiết kế để trở thành một framework, nên chúng không hề ràng buộc việc phải sử dụng một mô hình lập trình ứng dụng nào.

Các tính năng chính mà WTL hỗ trợ:
 Cửa sổ Frame
 Cửa sổ MDI
 Điều khiển (controls)
 Trang thuộc tính (property sheets)
 Hộp thoại (dialog)
 Thực đơn (menu), Biểu tượng (icon), Con trỏ chuột (cursor)
 Các cửa sổ hỗ trợ cuộn (scrolling window) và phân tách cửa sổ (splitter window)
 GDI
 Giao diện (theming)
 In ấn
 Hộp thoại tác vụ (task dialog) (được hỗ trợ từ Windows Vista)
 Windows CE

Giấy phép 
Giấy phép ban đầu của WTL tương tự như giấy phép của Microsfot Foundation Class Library (MFC), mặc dù không có giới hạn nào về việc sử dụng hay phân phối thư viện này. Năm 2004, Microsoft mở mã nguồn của WTL với giấy phép Common Public License (CPL) và đưa nó lên SourceForge. Kể từ phiên bản 7.5, thư viện này được phân phối với 2 giấy phép song song, CPL và Microsoft Public License.

Xem thêm 
 Active Template Library (ATL)
 Microsoft Foundation Classes (MFC)

Tham khảo

Liên kết ngoài 
 Mục các bài viết về WTL
 Loạt bài viết về WTL cho những lập trình viên MFC
 Thảo luận trên StackOverflow về so sánh giữa WTL và ATL
 Nguồn tài liệu không chính thức về WTL 

C++
Phần mềm nguồn mở
Microsoft Windows
Lập trình hướng đối tượng
Dự án phần mềm tự do