欢迎来到天天文库
浏览记录
ID:9804753
大小:846.06 KB
页数:69页
时间:2018-05-10
《wtl起步-玩转图形界面》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、WTL起步--玩转图形界面Microsoft2008WTL起步69/69WTL起步--玩转图形界面目录序言3第一部分基础篇5第一章WTL的基础--ATL5第二章WTL之路11第三章命令条14第四章带视图的框架窗口15第五章使用MRU17第六章创建多线程SDI应用程序19第七章创建MDI应用程序23第八章分隔窗口26第九章GDI的封装31第十章CString及其它34第十一章动态数据交换(DDX)的WTL支持35第十二章WTL向导37第十三章WTL例程39第二部分提高篇40第一章位图视图的例程40第二章上下文菜单41第三章滚动视图43第四章通用对话框45第五
2、章控件封装47第六章打印与打印预览52第七章属性页56第八章消息过滤59第九章空闲处理62第十章UI更新63第十一章消息分解65第十二章WTL的未来6769/69WTL起步--玩转图形界面序言WTL是2000年1月随Windows的平台SDK始发的。起初是ATL项目组写的一个基于ATL的,封装了相关win32窗口API的例程。自ATL2.0开始,ATL就已经有一些简单的相关窗口函数的封装类,例如:CWindow,CWindowImpl和CDialogImpl。然而,当我们比较MFC的界面相关部分的功能时,ATL对界面编程的支持简直就是一个玩笑。甚至到了AT
3、L3.0,ATL仍然没有对诸如MDI,命令条,DDX,打印,GDI等流行功能的支持。最被人喜爱的MFC的CString也没被支持进来。没有对这些功能的支持,ATL很难满足拥有压倒性数量的使用MFC的编程人员的需求。WTL就是ATL项目组认为ATL风格的窗口编程模型应该有的样子。表1列出了WTL与MFC在界面编程相关功能方面的比较。特性MFCWTL依赖库支持不支持(构建ATL之上)应用向导支持支持支持类向导支持支持不支持(第三方插件VisualFC支持)微软的公开支持支持不支持(微软内部的志愿者支持)支持OLE文档支持不支持支持视图支持支持支持文档支持不支持
4、基本win32/通用控件封装支持支持高级通用控件封装(平坦滚动条、IP地址控件、页面控件等)不支持支持命令条支持(包含bitmappedcontextmenus)不支持(MFC提供对话条)支持CString支持支持GDI封装支持支持辅助类(CRect,CPoint,等)支持支持Wizards属性页/向导支持支持SDI,MDI支持支持支持多线程SDI支持不支持支持MRU支持支持支持可停靠窗口/条支持不支持分隔窗口支持支持DDX支持支持(不是MFC的扩展)打印/打印预览支持支持滚动视图支持支持客户自画封装不支持支持消息/命令路由支持支持通用对话框支持支持HTM
5、L视图支持支持简单实例应用不支持不支持UI更新支持支持基于模板不支持支持带工具条,状态条和菜单的不做任何情事的SDI应用静态链接时大小超过228KB(+MSVCRT.DLL(288KB))24k(带/OPT:NOWIN98)(+MSVCRT.DLL如果使用CString)带工具条,状态条和菜单的不做任何情事的SDI应用动态链接时大小24KB+MFC42.DLL(972KB)+MSVCRT.DLL(288KB)N/A对运行时库的依赖CRT(+MFC42.DLL,如果动态链接)None(如果使用需要CStringCRT)69/69WTL起步--玩转图形界面表1
6、WTL与MFC的比较当然,WTL不可能(也不愿意)做所有MFC都能做的事儿。MFC支持经典的OLE,文档/视图框架和可停靠窗口,而WTL没有。而且还缺乏微软的“官方”支持。然而,来自于前ATL项目组成员,以及活跃在ATL开发社区的“非官方”支持,可以减轻您对支持方面的担心。为何ATL开发社区喜欢WTL?因为这四点:1>WTL是基于C++模板技术的;2>应用程序的最小编译代码小于24K;3>没有任何多如的动态链接库依赖(如果您用CString,会链接CRT);4>拥有ATL一样的灵活和小巧。此外,WTL和MFC的界面编程模型非常接近,还包括了从它移植过来的C
7、String。在我们这本分两部分的书里,我将揭开WTL神秘的面纱。在第一部分里,我们讨论WTL框架窗口的实现结构。我们将解释如何编写基于WTL的SDI,MDI和多线程SDI,以及IE浏览器样式的应用程序。进而,我们讨论WTL的辅助类,包括对DDX的封装。最后,我们看一下WTL的AppWizard和本书附带的例程。在本书的第二部分,我们讨论WTL命令条的实现结构,以及对Windows通用控件的封装和一些自定义的用户界面小部件。我们还将进一步讨论WTL的Windows消息路由结构,包括消息分解,过滤和空闲处理。我们的WTL之旅没有结束,直到我们讨论完通用对话框
8、,属性页/属性表,打印支持,以及滚动窗口。所有的这一切我们计划放在
此文档下载收益归作者所有