/EzUI

win32 desktop GUI framework

Primary LanguageC++

WIN32 desktop application UI framework (2d graphical library:direct2d,后期可能会采用其他跨平台的2d图形库对整个UI框架进行跨平台)

编译方式

1.下载源码 使用git命令

git clone https://github.com/NewYoungCode/EzUI.git

2.下载并且安装cmkae https://cmake.org/download/

安装 Windows x64 Installer:	cmake-3.26.3-windows-x86_64.msi

3.编译运行

请将这个文件 "kuGou运行依赖(需要将此解压到exe所在位置).zip" 解压到编译完成的exe所在目录(运行资源以及动态链接库)

简介:

原理:基于windows消息机制,所有控件都是逻辑控件 处理鼠标键盘对控件的命中消息并进行下发 响应WM_PAINT消息进行重绘 分层窗口则采用一个线程进行检测无效区域并进行重绘

高分辨率适配 使用direct2d进行高性能绘图

可灵活使用控件组成大部分想要的效果(combox,datagridview,tree)将轻易实现

css普通进行修饰控件外观 模仿前端的继承样式 hover,active,checked伪样式 id选择器,类选择器,选择器可多选

弹性布局 自动宽高 布局代码可以像写web前端一样轻松高DPI的适配 GIF显示

窗口类

Window //经典带边框带系统菜单WIN32窗口样式

BorderlessWindow :public Window //继承于Window 无边框 带阴影

LayeredWindow :public BorderlessWindow //分层窗口 继承于Window 无边框 带阴影 窗口透明异形 窗口大小发生改变重绘 (自定义绘制机制)

PopupWindow :public LayeredWindow //继承于LayeredWindow 特点(弹出式窗口 窗口失去焦点将会自动关闭,可用于做弹出式菜单)

注:所有窗口调用Show()函数之前 所有窗口必须设置布局 使用 Window::SetLayout()进行设置布局

常用控件(类所有控件都继承于"Control"):

Label(带文字的控件),Button(按钮),TextBox(文字输入框),HLayout(水平布局),VLayout(垂直布局),HList(水平排列),VList(垂直排列),TileList(瓦片布局),TabLayout(视图切换),PictureBox(可用于显示GIF),CheckBox(复选框),RadioButton(单选框)

Tips: Debug模式运行程序按下F11可查看当前布局信息 每个控件将高亮显示边框

学习&技术支持

框架学习:https://space.bilibili.com/240269358/video

QQ:718987717 //qq群:758485934 //email:19980103ly@gmail.com //微信: