Directui DUI

    本文地址:http://tongxinmao.com/Article/Detail/id/503

    c++ Directui

    Directui是一套开发理念,其主要的思想就是主窗口有句柄HWND,但是子控件Button List 等等都是无窗口句柄的,使用spy++无法抓取控件的HWND。DirectUI界面库取名自微软的一个窗口类名“DirectUIHWND”,意为Paint on parent dc directly。 即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。DirectUI界面库使用XML来描述界面风格,界面布局,可 以很方便的构建高效,绚丽的,非常易于扩展的界面。从而很好的将界面和逻辑分离,同时易于实现各种超炫的界面效果如换色,换肤,透明等。DirectUI技术说白了就是XML配置文件+图片+JavaScript控制界面。这点与网页css+图片+JavaScript十分相似,就是如开发网页一般开发桌面程序界面,这个开发效率当然大大的提高。将程序员从繁琐的界面绘制工作中解脱出来,专心开发逻辑代码。还能大大减少代码量,因为据统计,传统MFC程序中,界面代码大约占总代码的1/3强!也就是说,这个1/3的代码都可以由xml+javascript替代!同理,如果网页开发时,每个图片都需要由web程序绘制,你能想象一个网页的代码量有多少吗?简直不能想象,而传统Window程序就是如此!DirectUI技术最早被用于window xp资源管理器左边栏,被称为task folder.而DirectUI被广为国人所知,还得感谢腾讯公司。QQ2009的界面就是使用DirectUI技术开发的。类似的有微软的MSN,OCS和百度Hi。最近的Office2007 Ribbon界面,如果使用Spy++查看,可以见到一个名为"NetUI"的窗口,其实这也是微软内部DirectUI的一个变种。不过无论是微软,腾讯,还是百度,都使用了DirectUI技术来开发自己的软件界面。


    总而言之,比较有名的开源免费Directui库有duilib/SOUI/REDM/DuiVision等等。互联网大厂BAT/网易等的客户端ui就是使用duilib开发的。另外,也请多多关注SOUI、REDM、DuiVision这几个开源库。


     


    1、duilib

    Duilib 是 Windows 系统下的开源的 DirectUI 界面库(遵循 BSD 协议),完全免费,可用于商业软件开发。Duilib 可以简单方便地实现大多数界面需求,包括换肤、换色、透明等功能,支持多种图片格式,使用 XML 可以方便地定制窗口,能较好地做到 UI 和逻辑相分离,尽量减少在代码里创建 UI 控件。目前,Duilib 已经在国内有较为广泛的使用。


    (1)官方版


    https://github.com/duilib/duilib ++ https://gitee.com/Sinux/duilib duilib原版源码,曾经很火的项目,现在停止更新了。duilib自开源以来,各种版本被不同的组织或者个人维护。


    (2)旗舰版


    https://github.com/qdtroy/DuiLib_Ultimate ++ https://blog.csdn.net/duisharp Troy修改的duilib旗舰版,小小推荐。它是duilib库的增强拓展版,库修复了大量用户在使用中反馈的Bug,新增了用户需求的功能,并持续维护更新。


    duilib 旗舰版-高分屏、多语言、样式表、资源管理器、异形窗口、窗口阴影、简单动画。


    (3)Redrain版


    https://github.com/redrains/DuiLib_Redrain ++ https://redrain.blog.csdn.net/ Redrain修改的duilib旗舰版


    (4)腾讯版


    https://github.com/tencentyun/TIMSDK/tree/master/cross-platform/Windows/IMApp/Basic/duilib 腾讯使用的的duilib修改版,小小推荐


    (5)网易版


    https://github.com/netease-im/NIM_Duilib_Framework/tree/master/duilib 网易使用的duilib修改,推荐,网易在研发网易易信 PC 版时引入 Duilib,经过多年开发和改进,由网易云信在2019年4月开源。


    https://blog.csdn.net/netease_im 网易云信博客


    https://yunxin.163.com/ ++ https://github.com/netease-im ++网易云信 http://dev.yunxin.163.com/docs/product/%E9%80%9A%E7%94%A8/Demo%E6%BA%90%E7%A0%81%E5%AF%BC%E8%AF%BB/PC%E9%80%9A%E7%94%A8/Demo%20%E7%95%8C%E9%9D%A2%E5%B8%83%E5%B1%80%E4%BB%8B%E7%BB%8D


    https://github.com/netease-im/NIM_Duilib_Framework 


    网易云信Windows应用界面开发框架(基于Duilib),推荐,持续更新。NIM Duilib 包含了一整套桌面软件的开发部件,与其说这是一个界面库,不如说它是一个开发框架。从原有 Duilib 基础上拓展了一些新的能力,使用 C++11 重写,做了较大重构,并整合了 Google base 基础类库(线程、内存、闭包等)。您完全可以直接使用这个框架来开发任何你想要的桌面应用。Duilib是在研发易信PC版时被引入,历经六七年的研发过程,相对于原版Duilib,网易云信Duilib修复了一些问题和不足,包括但不限于控件种类不丰富、不支持动画、不支持半透明异形窗体、对多线程支持不好等,目前,网易云信Duilib配合比较高效的引擎库Base解决多线程问题,可以做出功能更强更稳定的客户端界面。


    https://github.com/netease-im/NIM_PC_UIKit  网易云信Windows(PC) UI组件源码,好久没更新了


    https://github.com/netease-im/NIM_PC_Demo


    (6)duilib入门简明教程:


    http://www.cnblogs.com/Alberl/category/520438.html


    http://blog.csdn.net/zhuhongshu/article/details/41037875/


    https://github.com/nmgwddj/duilib_tutorial DuiLib 基础入门文档+视频教程,基于官方开源代码


    (7)duilib的使用案例:


    http://www.winradar.com/ -- Troy修改的duilib旗舰版,使用duilib的开源项目,小小推荐


    https://github.com/cinience/RedisStudio


    https://github.com/karllen/cef3-duilib-YDDemo 基于Cef3+duilib仿有道词典


    https://github.com/fawdlstty/NetToolbox 易大师网络工具箱


    https://github.com/zhichao281/duilib-MiniBlinkBrowser 用duilib做的miniblink的浏览器


    https://github.com/sunflover/SunPlayer_DuiLib It is a windows GUI player,the GUI part use DuiLib


    https://github.com/bingwin/MicroChat ++ https://gitee.com/jolvmail/MicroChat just for learning duilib


    (8)UIDesigner for duilib


    https://github.com/wamaqa/DuiDesigner/tree/master/DuiDesigner ++ https://github.com/warren-lei/DuilibPreview duilib的界面设计工具


    (9)DuiLib和Qt哪个作为界面比较好?


    https://www.zhihu.com/question/23857833


     


    2、DuiEditor -- ★fork自duilib旗舰版,自创ui编辑器★

    https://github.com/xfcanyue/DuiLib_DuiEditor ++ https://gitee.com/Liqs99/DuiLib_DuiEditor 这是针对DuiLib开发的界面设计工具,可实际工作中使用,项目自带的库fork自duilib旗舰版,所以完整支持旗舰版。


    https://blog.csdn.net/mmcanyu/article/details/106758857 duilib设计器 DuiEditor简易教程 (DuiDesigner) (一)


     


    3、DuiVision -- ★蓝蚂蚁工作室★

    DuiVision界面库是参考了仿PC管家程序、金山界面库、DuiEngine、DuiLib等多个基于DirectUI的界面库开发的。


    https://github.com/blueantst/DuiVision ++ https://gitee.com/mirrors/DuiVision


    http://www.blueantstudio.net/index.html


    https://blog.csdn.net/oceanheart


    https://blog.csdn.net/geniusice18/article/details/16369499 高仿QQ电脑管家8 界面


     


    4、DuiEngine -- ★金山卫士★

    金山卫士开源项目带的ui界面库


    http://code.ijinshan.com/


     


    5、SOUI -- ★开源免费,推荐使用,文档详尽,持续更新★

    SOUI是目前为数不多的轻量级可快速开发window桌面程序开源DirectUI库.其前身为Duiengine,更早期则是源自于金山卫士开源版本UI库Bkwin.经过作者多次开发维护升级后得此库.SOUI其寓意为"瘦UI" "UI,just so so!"


    SOUI官方博客 http://www.cnblogs.com/setoutsoft/


    SOUI官方论坛 http://www.soui.vip/


    SOUI官方教程 http://www.soui.vip/forum-49-1.html


    SOUI v2.0


    https://gitee.com/setoutsoft/soui


    https://github.com/SOUI2/soui 


    SOUI v3.0


    https://gitee.com/setoutsoft/soui3


    https://github.com/soui3/soui


    SOUI UI editor


    https://github.com/soui-demo/SouiEditor


    https://github.com/soui3-demo/SouiEditor


    SOUI Demo


    https://github.com/SOUI2/soui/blob/master/products.md


    https://github.com/soui-demo


    https://github.com/soui-demo/PCManager


    https://github.com/soui3-demo


     


    6、REDM -- ★开源免费,推荐使用,文档详尽,持续更新★

    REDM是一套基于商业化标准的开源directui界面框架,不仅能提供完善的项目管理方案、详细的文档框架,也可轻松协助完成可视化界面设计,其核心库的稳定性已在内部多个大型商化项目中通过验证。


    https://gitee.com/hgy413/REDM


    http://hgy413.com/3426.html


    https://gitee.com/lzlong88/Effect-Designer 案例,模仿自抖音的特效制作工具


    https://gitee.com/hgy413/NSDM 案例,NSIS安装打包工具


     


    7、http://www.directui.com/


    8、http://bolt.xunlei.com/ 迅雷,不开源


    9、http://www.muilib.com/ 魔方界面库


    10、http://www.xcgui.com/index.php 炫彩界面库(xcgui.dll)


    11、http://gaclib.net/#~/ ++ https://github.com/vczh-libraries/Release gaclib


     


     


     


    -----------------------------------------------------以下收集的界面库,与DirectUI无关----------------------------------------------


    与PC桌面相关的C++界面库

    1、LibUIDK


    LibUIDK原来是商业界面库,2019年9月8号开源。是专业开发Windows平台下图形用户界面的开发包,该开发包基于Microsoft的MFC库。使用此开发工具包可轻易把美工制作的精美界面用Visual C++实现,由于LibUIDK采用所见即所得的方式创建产品界面,所以极大的提高了产品的开发速度,并大大增强图形用户界面(GUI)的亲和力。


    https://github.com/iUIShop/LibUIDK mfc skin ui,not directui


    http://www.iuishop.com/


    https://blog.csdn.net/psbeond 作者博客,QQ:1584793892


    2、Ultimate Toolbox -- MFC开源界面库


    https://www.codeproject.com/Articles/20182/The-Ultimate-Toolbox-Home-Page


    https://www.codeproject.com/Articles/20183/The-Ultimate-Grid-Home-Page


    https://www.codeproject.com/Articles/20181/The-Ultimate-TCP-IP-Home-Page


    3、imgui


    Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies




    轻量级并且支持多平台。ImGui在业界也十分有名,其脱胎于PSV的 Tearaway 这款游戏,之后由原作者进行了大量的整理扩展工作。它在诸如育碧的《刺客信条 奥德赛》《刺客信条 起源》、索尼的《拯救宇宙机器人》、SE的《FFVII重制版》、Mojang的《我的世界(Bedrock)》、暴雪的《Warcraft III: Reforged》等等知名游戏当中都有应用。同时也被集成在UE、Unity、Cocos2D等知名引擎当中。 Dear ImGui本身是平台及图形渲染API无关的。使用者需要将平台的用户输入事件转换传递给ImGui。


    https://github.com/ocornut/imgui


    https://github.com/ocornut/imgui/wiki/Software-using-dear-imgui


    https://github.com/ocornut/imgui/issues/123


    https://github.com/BentleyBlanks/imguiDock


    imgui的应用项目:十六进制编辑器。A Hex Editor for Reverse Engineers, Programmers and people that value their eye sight when working at 3 AM.


    https://github.com/WerWolv/ImHex


    https://github.com/thedmd/imgui-node-editor Node Editor using ImGui




    4、CButtonST


    http://www.softechsoftware.it/


    https://www.codeproject.com/Articles/57/CButtonST-v3-9-MFC-Flat-buttons V3.9是最终的开源版本


    5、BCGControlBar 商业软件


    https://www.bcgsoft.com/ vc++ mfc


    6、Toolkit Pro 商业软件


    https://codejock.com/products/toolkitpro/ vc++ mfc


    7、QtitanRibbon 商业软件


    https://www.devmachines.com/ Qt界面库


    8、High-speed Charting Control 绘图控件


    https://www.codeproject.com/Articles/14075/High-speed-Charting-Control


    x、MFC精品资源


    https://github.com/zhongyang219/TrafficMonitor MFC写的显示当前网速、CPU及内存利用率的桌面悬浮窗软件


    https://github.com/abstractspoon/ToDoList_7.2 MFC写的任务管理软件http://www.abstractspoon.com/

    https://keepass.info/ ++ https://sourceforge.net/projects/keepass/files/ 一款很方便安全的密码管理软件,keepass v1.x使用C++写的;v2.x使用C#写的


    https://winmerge.org/ ++ https://github.com/WinMerge/winmerge 文件比对软件


     


     


    与PC桌面相关的C#界面库

    1、DevExpress 商业软件


    https://www.devexpress.com/


    https://www.devexpresscn.com/


    2、DotNetBar 商业软件


    http://www.devcomponents.com/


    3、HZHcontrols


    http://www.hzhcontrols.com/index.html


    https://gitee.com/kwwwvagaa/net_winform_custom_control


    4、DMSkin


    http://www.dmskin.com/


    https://github.com/944095635/DMSkin


    5、微软开源UI利器


    https://github.com/Microsoft/microsoft-ui-xaml


    https://github.com/dotnet/winforms


    https://github.com/dotnet/wpf


     


     


    与PC桌面相关的Web/脚本跨平台界面库

    1、Electron


    Electron是GitHub发布的跨平台桌面应用开发工具,支持 Web 技术开发桌面应用,其本身是基于 C++ 开发的,GUI 核心来自于 Chrome,而 JavaScript 引擎使用 v8。


    https://www.electronjs.org/


    2、flutter


    Flutter 是 Google 开源的 UI 工具包,使用Dart编程语言。帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。


    https://flutter.dev/


    https://flutterchina.club/


    3、vue


    https://cn.vuejs.org/


    4、react


    https://reactjs.org/


     


     


    精美安装包制作工具:HofoSetup

    http://hofosoft.cn/,商业软件


    https://github.com/Tetian/ist inno setup+duilib实现定制皮肤一键安装


    http://www.ggniu.cn/index.html ++ 分享一个使用NSIS制作安装包的UI插件,使用Duilib与NSIS结合的方式,UI部分由Duilib来实现,安装流程由NSIS脚本来控制


    https://github.com/cppfuns/nsSkinEngine_NSIS_demo ++ https://www.nsetup.cn/ NSIS duilib UI plugin 界面库


    https://github.com/jeppeter/nsduilib duilib plugin for nsis


    https://github.com/winsoft666/NSIS-UI-Plugin Create NSIS Modern UI Setup by Using Thirdparty UI Library(such as Qt, DuiLib)


     


     


    精品ico图标下载

    https://icons8.com/


    https://www.easyicon.net/


    https://www.axialis.com/icons/


    https://www.ui.cn/ 漂亮界面网站


    https://www.iconfont.cn/ 阿里巴巴矢量图标库


    https://www.pexels.com/ 无版权的高质量图片库


    https://www.pexels.com/zh-cn/ 同上


    https://www.bigbigwork.com/ 


     


     


    尊重作者,支持原创,如需转载,请附上原地址:


    https://libaineu2004.blog.csdn.net/article/details/77200641

    ————————————————

    版权声明:本文为CSDN博主「libaineu2004」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/libaineu2004/article/details/77200641


    上一篇:PC端GUI方案对比
    下一篇:蓝牙转USB键盘鼠标