优化前备份
This commit is contained in:
31
CLAUDE.md
31
CLAUDE.md
@@ -23,6 +23,13 @@ cmake -B build -DBUILD_SHARED_LIBS=ON
|
||||
|
||||
# 仅构建库(不构建 demo)
|
||||
cmake -B build -DBUILD_DEMO=OFF
|
||||
|
||||
# 编译为静态库
|
||||
cmake --build build/vs2022_x86 --target EzUI --config Debug
|
||||
cmake --build build/vs2022_x86 --target EzUI --config Release
|
||||
cmake --build build/vs2022_x64 --target EzUI --config Debug
|
||||
cmake --build build/vs2022_x64 --target EzUI --config Release
|
||||
|
||||
```
|
||||
|
||||
## 核心架构
|
||||
@@ -37,8 +44,11 @@ cmake -B build -DBUILD_DEMO=OFF
|
||||
所有控件继承自 `Control` 基类,核心控件包括:
|
||||
- 基础控件:`Label`, `Button`, `TextBox`, `PictureBox`
|
||||
- 选择控件:`CheckBox`, `RadioButton`, `ComboBox`
|
||||
- 布局容器:`HLayout`, `VLayout`, `HListView`, `VListView`, `TileListView`, `TabLayout`
|
||||
- 功能控件:`ScrollBar`, `Menu`, `NotifyIcon`, `ProgressBar`, `TreeView`, `Spacer`
|
||||
- 数据控件:`TableView`, `TreeView`, `ListView` 系列
|
||||
- 布局容器:`HLayout`, `VLayout`, `HListView`, `VListView`, `TileListView`, `TabLayout`, `PagedListView`
|
||||
- 功能控件:`ScrollBar`, `Menu`, `NotifyIcon`, `ProgressBar`, `Spacer`, `IFrame`, `ShadowBox`
|
||||
- 表格控件:`TableView`
|
||||
- 动画:`Animation` - 类似 Qt 的过渡动画系统
|
||||
|
||||
### 布局系统
|
||||
- **尺寸优先级**:比例尺寸 (`SetRateWidth/Height`) > 绝对尺寸 (`SetFixedSize`) > 控件内容大小
|
||||
@@ -51,6 +61,8 @@ cmake -B build -DBUILD_DEMO=OFF
|
||||
- `UISelector` - CSS 选择器匹配系统
|
||||
- `Direct2DRender` - Direct2D 绘图实现
|
||||
- `RenderTypes` - 颜色、对齐方式等绘图类型
|
||||
- `UIDef` - 框架内使用的宏定义集合
|
||||
- `EzUI.h` - 框架主接口头文件,定义事件类、枚举、全局资源等核心结构
|
||||
|
||||
### 事件系统
|
||||
- 支持事件冒泡机制,可实现事件捕获与穿透
|
||||
@@ -67,6 +79,18 @@ cmake -B build -DBUILD_DEMO=OFF
|
||||
- 控件树内存由父控件自动管理:`Attach`/`Detach`
|
||||
- 图片资源通过 `PtrManager` 自动释放
|
||||
- XML 布局加载后由 `UIManager` 管理生命周期
|
||||
- `add_resource_package` 函数支持资源打包为 `.res` 文件
|
||||
|
||||
### 调试技巧
|
||||
- 在 Debug 模式下运行时,按下 `F11` 可实时查看布局信息,高亮显示控件边界
|
||||
|
||||
## Demo 项目
|
||||
|
||||
- `helloWorld` - 基础示例
|
||||
- `QQ` - 仿 QQ 登录界面(含资源打包)
|
||||
- `kugou` - 酷狗音乐播放器(含 VLC 依赖和资源打包)
|
||||
- `ResPackage` - 资源打包工具
|
||||
- `Adminstor` / `DemoUi` - 管理界面示例
|
||||
|
||||
## 开发约定
|
||||
|
||||
@@ -74,4 +98,5 @@ cmake -B build -DBUILD_DEMO=OFF
|
||||
- 源文件位于 `sources/` 目录
|
||||
- 一切皆控件,纯代码组合 UI
|
||||
- 使用 CSS 驱动视觉,结构与样式分离
|
||||
- 中文注释,中文沟通
|
||||
- XML 解析使用 `tinyxml` 库
|
||||
|
||||
|
||||
Reference in New Issue
Block a user