msimeui
msimeui 是一个基于 Win32 的 C++ GUI 工程,渲染层使用 Direct2D / DirectWrite,文本输入使用 TSF。
- 常规界面元素使用 Direct2D / DirectWrite 渲染
- 使用原生 Win32 窗口作为宿主
- 文本输入控件内置 TSF 实现
- 界面结构基于控件树和布局系统
当前内容
当前仓库包含:
msimeui静态库msimeui-demo示例程序- D2D/DWrite 设备资源管理
- 基础布局和控件树
StackPanel/HorizontalStackPanel/WrapPanelTextBlock/Button/CheckBox/ProgressBar/Slider/SeparatorTextBox输入控件
构建
如果已经配置好本机的 vcpkg 路径,可以直接使用 preset:
cmake --preset vcpkg-debug
cmake --build --preset debug
如果要编译 Release:
cmake --preset vcpkg-release
cmake --build --preset release
也可以继续使用普通 CMake 命令:
cmake -S . -B build
cmake --build build --config Debug
如果本机的 vcpkg 不在 C:/Users/SonnyCalcr/scoop/apps/vcpkg/current,先按自己的环境修改 CMakeUserPresets.json 里的 VCPKG_ROOT 和 CMAKE_TOOLCHAIN_FILE。
也可以直接使用 scripts/ 里的 PowerShell 脚本:
./scripts/configure.ps1
./scripts/build.ps1
./scripts/run-demo.ps1
./scripts/launch-demo.ps1
指定 Release:
./scripts/build.ps1 -Configuration Release
./scripts/run-demo.ps1 -Configuration Release
./scripts/launch-demo.ps1 -Configuration Release
如果切换过 CMake generator、Visual Studio 版本或者 preset,可以加 -Fresh 重新生成构建目录:
./scripts/build.ps1 -Fresh
./scripts/launch-demo.ps1 -Fresh
生成程序默认位于:
build/bin/Debug/msimeui-demo.exe
目录
include/msimeui:新框架公开头文件src:框架实现demos/msimeui-demo:demo 入口和示例场景src/tsf:内置 TSF 文本输入实现
后续工作
- 继续完善
TextBox的输入、样式和布局能力 - 增加滚动容器、列表、树、菜单和弹出层
- 引入资源字典、主题和声明式界面描述