複製鏈接
請複製以下鏈接發送給好友

wTL

鎖定
WTL 在開發者之間的悄悄傳播已經超過一年了, 傳聞它是基於ATL的,並在微軟內部使用。這理所當然的引起了ATL開發者社區的注意。這些人從ATL1.1開始,就一直為ATL控件書寫UI代碼,但是他們發現,他們的所寫的代碼常常就是純的Win32 GDI代碼。我告訴您, WTL並沒有多大不同。
外文名
Windows Template Library
縮    寫
WTL
開發人員
微軟ATL小組
基    於
ATL對Win32API 的封裝

目錄

wTLWTL庫

簡介
WTL 是 Windows Template Library 的縮寫,由微軟的ATL(Active Template Library) 小組開發,主要是基於 ATL 對Win32API 的封裝。從 2.0 後,功能逐步完善,成為了一個完整的支持窗口的框架(windows framework)。
WTL 功能不如MFC完善,但是比 MFC 更小巧,不依賴 MFC 的DLL
WTL 不是微軟的正式產品,沒有微軟的官方支持。
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下.

wTL文圖拉

英文名:Ventura  生日:1948-01-14  職務:巴里主教練  慣用腳:右腳  出生地:熱那亞(意大利)  國籍:意大利  代表國家隊:出場0次,進0球  歐洲三大杯:出場0次,進0球  歐洲冠軍聯賽:出場0次,進0球