WTL---WxWidget---MFC 何去何从

C++程序员打交道最多的就是MFC了,这个我不想多说,说来都是泪(C#年年更新,C++十年才出了一个featurePack还不是很好用)

现在另外两支队伍越来越庞大(所谓穷则思变,呵呵),一是WTL,关于它的种种传说可以参考WTL中文教程,里面讲的很详细,这里我想说的是为什么使用WTL:
传说WTL是微软内部所使用的界面框架程序,原因是高效,简洁,实际也是如此,WTL的程序内的内存占用比MFC小的多,而且WTL内建了对于可缩放对话框的支持(支持控件停靠哦),对于多文档以及视类的支持更是MFC望尘莫及的,但是WTL也有其自身的缺点,比如开发文档少,尤其是中文的,向导不够聪明(谁用谁知道,呵呵),换句话说,用WTL就意味着多敲一些代码,不过这个可以有一些第三方工具缓解(还是那句话,穷则思变),如WTL helper,还有国产的WTL helper,还有国产的VFC,两者都是开源软件,放心使用,建议有意开发WTL的程序员先打好基本功,因为这个基于ATL的这个铁娘子不是谁都可以驾驭的哦,如果对程序大小要求不是太苛刻的话,还是拿MFC将就吧

其二就是我最近很感兴趣的WxWidget, 这款框架最大的优势就是真正意义上的跨平台,其注意真正两个字,因为在我看来所谓的java跨平台不过是幌子,有种连JVM也跨平台试试(JAVA拥护者别拍我哦,其实JAVA还是在OO领域很强大的),那真正二字就是因为,WxWidget提供了在本机源码级的跨平台,从此你在让客户使用你软件的时候不必再说:“你必须给我安装×××虚拟机或×××Framwork”,在一个平台下编译的代码,不用做任何更改,在另一个平台下就可以编译通过并且发布,这岂不美哉,而且WxWidget所使用的界面元素几乎都取自本地计算机,就是说你的见面客气来很有亲和力,最终发布的二进制代码文件爱你无论是静态还是动态链接都要比GTK之流小很多(见图表)。有兴趣一试的可以看看WxWidget开发环境配置

说了这么多,总结如下,三种平台各有所长,如果你是windows程序员,那么WxWidget对你而言没有多大意义,如果你刚开始接触C++,那WTL这个高品位新娘也许会让你忙的团团转,呵呵,大家自己斟酌吧

时间: 2025-01-31 06:07:08

WTL---WxWidget---MFC 何去何从的相关文章

MFC程序员WTL指南(1)中文版序言

我一直在寻找这样一个类库:他对Windows的窗口提供面向对象的封装,有灵活的消息响应机制和比较完备的界面框架解决方案,对标准控件提供简练实用的封装,支持操作系统的新特性,支持功能扩充和二次开发,有代码自动生成向导机制,生成的程序使用较少的系统资源,最后是有完全的代码支持和文档支持. 你会说那就用MFC吧! 是的,我一直使用MFC,但我对MFC已经越来越厌倦了.陈旧的类库使得它无法支持操作系统的新特性(MFC的类库从4.21版之后就没有更新了,而那时是1998年,人们使用Windows 95和w

初识WTL(下)

代码运行效果图如下: 接上一节,我们这次在SDI中添加一个按钮,用来演示弹出一个自己添加的对话框. 因为WTL目前不支持像MFC那样的Class Wizard,所以我们得手动添加一些代码.首先我们在Resource View中Insert Dialog,接下来我们也可以借用一下MFC的Class Wizard,如图: 这里的CAxDialogImpl也可是CDialogImpl,MFC的Class wizard确实没为我们的小程序作些贡献,除了生成.h和.cpp文件,相信以后WTL也可以有Cla

windows-Windows,C++图形界面,适当方法

问题描述 Windows,C++图形界面,适当方法 想做一个界面过得去的Windows桌面应用,MFC比较麻烦,看了一些界面库,但还不怎么了解,不知道用起来怎样.有什么可以推荐的方法,比较合适做一般的应用,比如CSS和HTML类似的方法. 解决方案 如果你希望做现代的,设计和实现分离的代码,优先的选择是使用wpf,wpf使用类似html的方式(xaml)来定义界面,因此把具体怎么绘图之类的事情和定义界面应该呈现成什么样的形式分离开来了,使得程序员不必考虑底层细节.并且wpf还可以充分利用wind

名企招聘信息

360 一.Windows软件开发工程师 工作地点:北京.珠海 招聘人数:若干 职位类型:技术类 工作职责: Windows客户端产品的研发及维护: 改进增强现有产品的功能与性能: 相关新技术.新产品的调研. 职位要求: 计算机相关专业大学本科及以上学历: 擅长C/C++,熟悉ATL/WTL/STL/MFC,熟练使用Visual Studio开发环境: 熟悉Windows Platform SDK开发技术(Windows Message.COM.Thread.Process.IPC等): 熟悉W

对语言之争的看法

又看到语言之争,各种吐嘈,唉-- 说说我的看法,我觉得一门编程语言用到极致就行了,何必纠结语法层面的差异? 因为历史原因,我用.NET比较多,当然Windows编程.Java编程.Linux/Unix编程.C/C++编程.Python,JavaScript等动态语言甚至是汇编编程我也粗有研究,也测试过一门动态编程语言Python.刨去Visual Studio昂贵的费用(我一开始用的是盗版,当然现在因为Bizspark的关系终于用上正版了--),说实话我还是比较喜欢C#的,做项目的时候,我这个人

HOOK自绘原理

做"HOOK文件打开/保存对话框"的过程中,我首先研究了界面库的相关知识.界面库一般都是由C/C++这种中低级语言编码,这是因为在Windows下的界面库实现技术大都以直接操作控制Windows的消息和调用Windows的API为主,这就是这种中低级语言的优势了.无论何种界面库,最为根本的原理就是获得或者截获窗口的某些消息,按照自己的需要处理这些消息,画出自己需要的界面. 按照Windows下的界面库的使用方法来分类,可以分为两种: 1. 通过派生.继承界面库中的类来使用库.这类界面库

java-桌面应用 ~

问题描述 桌面应用 - 你们好,有几个问题 第一-桌面应用类似搜狗壁纸那样的软件一般用什么需要来写, 第二-如果是Java来写的话 javase还是javaee 请回答谢谢 解决方案 可以用java的swing写,也可以用QT写(需要C++),其它的就很少了.一般swing和QT是跨平台的.. 解决方案二: 几款简约而且华丽丽的桌面应用 解决方案三: 1.Windows一般使用C++来编写,需要用到WTL或MFC.MFC现在使用得比较少了: Android平台当然可以用Java来写,iPhone

客户端GUI程序开发漫谈

这篇文章包含了这个领域的很多开源项目的介绍,还有我多年来的心血和汗水  去年夏天的时候,我用QT做了一个小工具 后来还用QT做了流程设计器 我把程序分享给飞扬青云之后,他甚至搞出来一套QT的皮肤来 说实在的,QT确实挺强大的, 如果你有一个项目,需要跨平台GUI开发,你又有一个C++团队的话, 那么做技术选型的时候,可以负责任的说,QT是不二之选   这时可能有人会提到GTK+, 我想说的是GTK+对windows平台的支撑力度实在是少的可怜 linux的版本已经到了3.16了,windows的

MFC程序员WTL指南(5)对话框与控件

对第四章的介绍 MFC 的对话框和控件的封装真得可以节省你很多时间和功夫.没有MFC对控件的封装,你要操作控件就得耐着性子填写各种结构并写很多的SendMessage调用.MFC还提供了对话框数据交换(DDX),它可以在控件和变量之间传输数据.WTL 当然也提供了这些功能,并对控件的封装做了很多改进.本文将着眼于一个基于对话框的程序演示你以前用MFC实现的功能,除此之外还有WTL消息处理的增强功能.第五章将介绍高级界面特性和WTL对新控件的封装. 回顾一下ATL的对话框 现在回顾一下第一章 提到

MFC程序员WTL指南(4)工具条与状态条

对第三部分的介绍 自从作为Windows 95的通用控件出现以来,工具条和状态条就变成了很普遍的事物.由于MFC支持浮动的工具条从而使它们更受欢迎.随着通用控件的更新,Rebars(最初被称为Coollbar)使得工具条有了另一种展示方式.在第三部分,我将介绍WTL对这些控制条的支持和如何在你的程序中使用它们. 主窗口的工具条和状态条 CFrameWindowImpl有三个HWND类型的成员变量在窗口创建时被初始化,我们已经见过m_hWndClient,它是填充主窗口客户区的"视图"窗