http://toutiao.com/group/6841904232375812359/?iid=0&app=news_article
https://m.zjurl.cn/question/6841349388615352576/?app=news_article&app_id=13&share_ansid=6841904232375812359
Windows界面应用程序推荐使用duilib、QT和C#,MFC已经过时了,用的人也很少了!
1、MFC
MFC是微软提供的经典的UI界面框架,我是做Windows开发的,刚参加工作的时候用的就是MFC,对MFC比较熟。在MFC界面中,所有的控件都是一个Windows窗口,这在一些IM软件中是有弊端的,比如我们的软件中以前就遇到过,一个聊天窗口中会包含很多控件,每个控件窗口都会占用若干个GDI对象,这样一个聊天窗口就会占用200多个GDI对象,测试人员会做压力测试,会一次性打开多个聊天窗口,在打开几十个聊天窗口后,整个进程的GDI对象总数就会接近1万个,而Windows系统中的进程的GDI对象不能超过1万个,超过1万个会导致进程的UI界面绘制出异常,甚至会导致进程崩溃。
另外,MFC提供的按钮等控件,都是原始的、未经过美化的,而商用产品肯定是要做界面美化的,但MFC设计的不太灵活,在MFC上进行贴图美化,代价是比较高的,可能费了很大的劲,美化效果可能也没那么好!MFC现在已经过时了,商用软件基本都不会使用MFC了,可能一些小的demo或者工具软件才会使用。
2、duilib
为了解决MFC美化难、MFC窗口GDI对象占用较多的问题,我们后来将MFC直接换成了基于directui思想的开源库duilib,在duilib的窗口中只有最外层的是个Windows窗口,窗口中的子控件都是贴图实现的,不再是真实的Windows窗口,并且每个窗口都以xml方式进行界面布局,在界面布局贴图美化时比较灵活方便不少。
现在很多公司都在使用这个开源的duilib,比如微信PC客户端、百度云管家客户端、华为网盘、酷狗音乐、爱奇艺PPS客户端、拼多多后台管理客户端等。我们有同事跳槽去了爱奇艺和拼多多,所以这两家公司比较了解。
网上关于duilib的资料比较多,也有大量的demo程序,比如有人就直接使用duilib实现了酷狗一整套软件界面,代码可以在网上下载到并且该开发者还提供了详细的教程说明。
3、QT
QT其实也还不错,QT最大的特点是支持跨平台,很多公司都在用QT,比如监控行业的海康威视和浙江大华,他们的监控客户端都是用QT开发的,这样的好处是,开发出来的程序既可以在Windows上跑,也可以在Linux系统(比如Ubuntu、UOS国产化系统)上运行。