NIM_Duilib_Framework 学习分享

本贴最后更新于 903 天前,其中的信息可能已经物是人非

Duilib 简介

DUI lib:是一款基于 DiretUI 技术的轻量级 windows 界面库,以 xml 文件形成界面布局,具备界面风格绚丽,
兼容 ActiveX 控件等特点

DirectUI 技术:Paint on parent dc directly,即直接在父窗口上绘图,所有子窗口均不以窗口句柄形式存在,
只是逻辑上的窗口;

Nim_Duilib 简介

Nim_Duilib 整体组件框架

1、框架中提供了多线程模型、高精度定时器、基本的 xml 解析、zip 解压等功能;
2、封装了一层渲染接口和全局样式资源的统一管理;
3、并且对 DPI 适配、多语言、虚拟键盘、手写板等功能增加了支持;
4、在上层提供了丰富的控件

nimduilibframework.jpg

线程模型和消息队列

开发框架中继承了 Chromium 中 base 库的线程模型和消息队列,base 中包含了多种消息循环、异步操作接口

nimduilibmessagequeue.jpg

功能特点

网易 Duilib 框架提供了更加完整和丰富的功能,以满足不同真实业务场景的需求:
丰富的控件、简易的布局
灵活的控件组合、事件处理方式
模块化支持
优化渲染效率
异形窗体支持
DPI 适配支持
多国语言支持
通用样式支持

虚表控件支持
虚拟键盘支持
实用的多线程支持
CEF webview 支持
控件动画、GIF 动画支持
触控设备支持(Surface、Wacom)
抽象渲染接口(为其他渲染引擎提供支持)

页面效果与代码实现

属性表

nimduilibprofile1.jpg

nimduilibprofile2.jpg

页面效果

nimduilibdialog1.jpg

nimduilibdialog2.jpg

仓库地址

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

总结

从对应的标签来看,总体思路与网页的 HTML 标签类似,层层嵌套,只不过是以 xml 文件的形式实现。与同事交流之后,得知该库相对 MFC 这些而言,屏蔽了一些东西,使之相对简单易理解。不过原理还需要再去读一下源码。如果有不同看法,还请指教。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...