├── DXUI Designer.exe ├── DXUI Designer_x86.exe ├── DXUI 使用教程.docx ├── DXUI_210221.exe ├── DXUI_Library.h ├── FFmpeg_音频格式转换.exe ├── README.md ├── preview pictures ├── Chat_UI1.jpg ├── Chat_UI3.jpg ├── Designer.jpg ├── main.jpg ├── ncz0.jpg ├── ncz1.jpg ├── ncz2.jpg └── 棋盘.jpg ├── 棋盘.exe └── 棋盘示例 - 源码.zip /DXUI Designer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/DXUI Designer.exe -------------------------------------------------------------------------------- /DXUI Designer_x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/DXUI Designer_x86.exe -------------------------------------------------------------------------------- /DXUI 使用教程.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/DXUI 使用教程.docx -------------------------------------------------------------------------------- /DXUI_210221.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/DXUI_210221.exe -------------------------------------------------------------------------------- /FFmpeg_音频格式转换.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/FFmpeg_音频格式转换.exe -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DXUI-Library 2 | ### 此库来之不易,使用请标明作者。 3 | **共同维护良好的开源环境!**
4 | **QQ: 2441987560
5 | WeChat: yz2441987560
6 | Email: 2441987560@qq.com**
7 | **欢迎通过各种方式提出宝贵的意见,每个周末我都会查看,有不懂的也可以找我交流。**

8 | 9 | 一个 **超级简单、动画华丽** 的界面库
10 | 取“DXUI”这个名字是因为此界面库使用 Direct 2D 图形库来绘制,使用 Wic库 实现加载图片及部分功能,使用 DWrite库 来绘制处理文字。
11 | * 1.控件样式可以90%自定义,并且有完善的透明度支持。
12 | * 2.支持线性与非线性的贝塞尔曲线参数动画,仅通过一行代码即可实现一个华丽的控件动画。
13 | * 3.局部刷新技术,背景图再大,上层控件动画也能流畅播放。
14 | * 4.非常简单,开发者只需要考虑如何找到好看的颜色,仅通过几行代码即可添加控件。
15 | * 5.高兼容性,无需考虑硬件支持问题,就算不支持,可无缝切换到 WARP软件光栅化器,效率优于 GDI。
16 | * 6.比 GDI/GDI+ 更高的绘图质量,界面更清晰大方。
17 | * 8.极其完善的高 DPI 支持,再也不用担心系统缩放模糊的问题。

18 | 预览图:

19 | **注意:这里的内存占用与任务管理器显示的不一致,实际远小于这个值。**
20 | * **DXUI - 示例程序预览图:**
21 | ![main](https://github.com/IDXGI/DXUI-Library/blob/master/preview%20pictures/main.jpg)
22 | * **百词斩UI - DXUI示例程序预览图:**
23 | ![ncz0](https://github.com/IDXGI/DXUI-Library/blob/master/preview%20pictures/ncz0.jpg)
24 | ![ncz2](https://github.com/IDXGI/DXUI-Library/blob/master/preview%20pictures/ncz2.jpg)

25 | 目前已经基本完善并能正常使用,显然我知道颜色及某些需要手动填入是比较繁琐的,后期准备向简化这部分努力。
26 | 要高考了,等高考完再考虑更。

27 | 28 | 29 | **————————220206 更新内容————————**
30 | 1.修正了一个小 BUG 。
31 | 2.修正了 Designer 的一个复制粘贴导致闪退的 BUG。
32 | 3.优化了棋盘示例的操作手感,并加入了酷炫的标题栏动画。
33 | 4.加入了新示例程序 - FFmpeg 音频格式转换,使用 Designer 布局,调用 FFmpeg 实现简单的音频格式转换。
34 | **————————220126 更新内容————————**
35 | 1.大规模代码重构及 BUG 修复。
36 | 2.新增 Button_WaterWave,可以更方便地创建 Google 风格的按钮。
37 | 3.新增 DClipRect,可以占用更少的内存及速度实现对子控件的裁剪。
38 | 4.新增 DCombinedCon,通过继承的方式,可以实现用户自定义控件,自己处理控件响应。
39 | 5.简化的用户代码的过程,减少了不必要的参数传递,并且不用再加入 Windows 消息处理回调,与DXUI的消息回调合并,真正做到很少的代码实现华丽的界面。
40 | 6.新增 DString 类,实现文本窄字符和宽字符支持,即 wchar 和 char 可以轻松使用及转换。
41 | 7.实现了 G++ 的编译,去除了对 VS 和 Windows SDK 的依赖。
42 | 8.在 Windows 8 及以上的系统中,使用 Flip 呈现模型,极大地减少了绘制时 GPU 占用。
43 | 9.优化了 64 位程序编译时的问题。
44 | 10.增加 TextBox 插入符隐显动画,像呼吸一样隐显,更加自然。
45 | 11.设计了 DXUI Designer,来简化控件位置、大小参数的填写,以及处理窗口大小改变时控件的位置。

46 | 47 | 实在是累,代码量增加到了 14000 行,近期不会再更新了。
48 | **————————210221 更新内容————————**
49 | 1.中等规模代码重构,图形库由D2D1.0升级为D2D1.1。
50 | 2.启用Windows窗口混合的局部刷新功能,节省大部分场景下的GPU占用。
51 | 3.优化控件局部刷新,减少了小部分场景下的GPU占用。
52 | 4.更换TextBox与ScrollView的非线性滚动动画、插入符动画的参数,观感更加丝滑。
53 | 5.较明显地优化了内存占用。
54 | 6.DTransparentWindow与DWindow类合并,DWindow增加设置可以运行时无缝切换为透明窗口。
55 | 7.控件背景增加实时高斯模糊选项,能动态反映出底层控件的改变。
56 | 8.优化多线程调用的问题,不同线程调用更加安全。
57 | 9.显示更新区域选项改为多彩闪烁,正在更新的控件更清楚。
58 | 10.冗杂的零碎BUG修复。
59 | 11.示例程序重新设计,将多个曾经的示例UI结合到一起,美观度++。

60 | 61 | 一个人维护这1w+行代码实在太累了,但此库也逐渐走向成熟,设计思想也得到提升。这个假期还有一些计划好的目标,比如增加设计工具自动生成样式数据,增加控件阴影等没有实现。快开学了,要全力学习了。暑假应该可以继续更新。
62 | **————————200915 更新内容————————**
63 | 1.DScrollView的BUG修复。
64 | 2.DScrollView可以定位到某一位置,并且定位过程支持动画滚动。
65 | 3.SetStateType()的小BUG修复。
66 | **————————2000713 更新内容————————**
67 | 1.增加了DScrollView,轻松的实现滚动界面。
68 | 2.优化了DTextBox及DScrollView的滚动动画,更加平滑。
69 | 3.其它的一些小BUG修复。
70 | **————————200626 更新内容————————**
71 | 1.解决了Win7、Win7 SP1显示不全的问题。
72 | **————————200523 更新内容————————**
73 | 1.增加了GifBox,可以一行代码从文件或资源读取gif文件,并轻松播放。
74 | 2.ImageBox增加了CopyFromMemory()函数。
75 | 3.增加了Win10背景动态高斯模糊效果,在低版本系统无效果。
76 | 4.自动设置进程的高DPI感应,如果忘记在工程设置感应也无大碍。
77 | 5.一些小BUG修复及小幅优化了性能。
78 | 6.作者用它编写了LightMusic播放器,用到了很多新特性,应该会发上来,看看有没有时间。
79 | **————————200424 更新内容————————**
80 | 1.修复了许多的小BUG(忘了是啥了,也懒得写),代码量由7k+增至1w+。
81 | 2.TextBox增加可选平滑滚动动画、插入符动画。增加某些输入法(如微软拼音)的组合字符串实时显示。
82 | 3.增加DSolidColorBox、DLinearColorBox和DRadialColorBox用来显示单调颜色、线性渐变与梯度渐变。并且后两者支持渐变起始位置和终点位置的动画。
83 | 4.增加窗口阴影的透明度动画,一行代码即可实现。
84 | 5.增加DTransparentWindow,与DWindow完全一样的使用方法,但可以来实现异形窗口,此类创建的窗口可没有背景色,只显示控件。
85 | 6.优化TextBox字符处理部分的稳定性。
86 | 7.每个控件增加整体的透明度TotalOpacity,并与填充颜色、描边颜色等透明度互不干扰,TotalOpacity也支持动画。
87 | 8.优化绘制功能的性能,改进了绘制结构,在高强度绘制时有明显改善。
88 | 9.优化了日常绘制时的卡顿感,还原对应帧率的真实体验。
89 | 10.为确保稳定性,通知给调用者的控件消息都自动转为主线程再通知,防止调用者处理时不在同一线程而出错。
90 | 11.每个动画启动时都可以设置AID,动画结束时,会发送Control_EndOfAnimation消息来通知用户,并会把启动时的AID传递过去,可据此进行处理。
91 |
92 | 由于不在住所,所以没有修改示例程序的代码,旧代码可能会有些小地方不兼容。最新的程序ChatUI会在晚些时候发布。
93 | **————————200316 更新内容————————**
94 | 1.根据方程的建议简化了部分冗余代码。
95 | 2.修正用户手动SetState和修改TextBox文本不会触发消息的问题。
96 | 3.TextBox增加GetLength()类函数。
97 | 4.修正TextBox文本的裁剪区域为超出一半描边宽度的问题。
98 | 5.优化了重叠的控件在动画时的更新区域。
99 | 6.示例程序增加一个重叠的TextBox。
100 | **————————200315 更新内容————————**
101 | 1.修复各种大大小小的BUG。
102 | 2.更改控件消息的传递方式,不在WndProc里。更简洁、直接。
103 | 3.简化控件消息。
104 | 4.增加设置窗口阴影。
105 | 5.优化动画流畅度。
106 | 6.增加了控件 位置、大小、不透明度、圆角半径的动画,并且可选用贝塞尔曲线参数实现非线性动画。
107 | 7.ImageBox新增一行代码实现软件多线程高斯模糊功能。
108 | 8.示例程序增加了多种华丽的非线性动画。
109 | 写完几个大的功能再更新吧,更新好麻烦呀。
110 | **————————191130 更新内容————————**
111 | 1.修复文本框在接收文本时单击鼠标左键会无限期假死的问题。
112 | 2.修改了示例程序控件的部分参数,更加美观。
113 | 期中成绩优秀,最近更新没有那么积极。
114 | **————————191102 更新内容————————**
115 | 1.修复文本框插入符不能左右移动的问题。
116 | 2.创建渲染线程时,自动先把第一帧画上,防止显示窗口时白屏一下。
117 | 3.示例程序的控件样式优化,更加美观。文本框也添加了文字颜色过渡动画。
118 | 本周还是只有一天时间,而且面临期中考试,近期不会有大的更新(我太难了)。
119 | **————————191019 更新内容————————**
120 | 1.修复线程锁的问题,用户可多线程调用此库。
121 | 2.大幅优化ImageBox加载图片后占用的内存。
122 | 3.控件被析构后,自动释放,不用再每次手动释放。
123 | 4.enum语法改为C++11新特性enum class。
124 | 5.修复Label在 高速修改内容 同时 鼠标在移动 时会造成动画闪烁的问题,修复后无论修改多快都完美流畅显示。
125 | 6.示例程序左下角新增 系统CPU占用 和 程序内存占用 信息,并单独开了一个线程来更新信息。由于获取这些信息,示例程序代码量增到500行。
126 | 7.示例程序改为静态编译,在没有VC++运行库的电脑上也能运行。
127 | 因为本周只有一天时间,只优化了一些小问题,预计下次更新一周后,更新步入正轨。
128 | **————————191004 更新内容————————**
129 | 1.修复了当窗口大小超出屏幕大小时,窗口坐标计算出错导致窗口无法显示的问题。问题出在示例程序上,库没有问题。
130 | 由于国庆回去后段考,认真在家复习,国庆暂不更新。预计下一次更新为2周后,要添加控件的位置、大小、不透明度的动画,然后给ImageBox增加高斯模糊功能及模糊半径的动画。
131 | **————————190922 更新内容————————**
132 | 1.ImageBox实现圆角功能。
133 | 2.优化控件绘制时逻辑,不透明度为0时不绘图。
134 | 3.TextBox的插入符颜色和宽度支持自定义。
135 | **————————190921 更新内容————————**
136 | 1.优化了在客户区拖动窗口的实现方式,新方法没有任何特殊限制。
137 | 2.优化ImageBox的加载函数,理论支持图片大小可达系统极限值,且上层控件动画依然流畅。还优化了加载失败后的处理。
138 | 3.优化了示例程序的控件参数,使其更自然、流畅。还增加了一些控件,更好地展示此库的简单、美观。更新后示例程序去掉注释和换行,依旧只有350行左右。
139 | **———————————————————————**
140 | -------------------------------------------------------------------------------- /preview pictures/Chat_UI1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/Chat_UI1.jpg -------------------------------------------------------------------------------- /preview pictures/Chat_UI3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/Chat_UI3.jpg -------------------------------------------------------------------------------- /preview pictures/Designer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/Designer.jpg -------------------------------------------------------------------------------- /preview pictures/main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/main.jpg -------------------------------------------------------------------------------- /preview pictures/ncz0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/ncz0.jpg -------------------------------------------------------------------------------- /preview pictures/ncz1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/ncz1.jpg -------------------------------------------------------------------------------- /preview pictures/ncz2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/ncz2.jpg -------------------------------------------------------------------------------- /preview pictures/棋盘.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/preview pictures/棋盘.jpg -------------------------------------------------------------------------------- /棋盘.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/棋盘.exe -------------------------------------------------------------------------------- /棋盘示例 - 源码.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IDXGI/DXUI-Library/51c06eaea8c9bd42cc24c93ff30fac9c58b7e715/棋盘示例 - 源码.zip --------------------------------------------------------------------------------