1.7 KiB
1.7 KiB
TsfEditControl
一个基于 Win32 TSF 的编辑控件实验工程,使用 Direct2D / DirectWrite 负责绘制。项目里把文本输入、组合串显示、候选框定位和基础编辑逻辑放进了控件本身,demo 只是一个最小宿主。
功能
- Direct2D / DirectWrite 文本渲染
- TSF 输入法接入
- preedit / display attribute 绘制
- 候选框位置上报
- 软换行
- 选区、插入点和鼠标命中
- 独立 demo 程序
目录
include/TsfD2DTextBox.h:对外头文件src/:控件实现和 TSF 相关代码demo/TsfD2DTextBoxDemo.cpp:最小示例程序CMakeLists.txt:顶层 CMake 配置CMakePresets.json:VS2022 + vcpkg presetvcpkg.json:依赖声明
构建
如果本机已经装好了 vcpkg,并且 preset 里的路径配置可用,可以直接执行:
cmake --preset vcpkg
cmake --build --preset debug
生成的 demo 默认位于:
build/bin/Debug/TsfEditControlDemo.exe
生成目标
TsfEditControl:静态库TsfD2DTextBox:兼容旧命名的别名 targetTsfEditControlDemo:demo 可执行文件
命名说明
对外类型名暂时还是 TsfD2DTextBox,主要是为了不动现有接口。工程名和 target 已经改成了 TsfEditControl,后面如果要统一命名,再一起收口文件名、类名和 demo 名称。
脚本
scripts/ 目录提供了几个常用脚本:
./scripts/configure.ps1:执行 CMake configure./scripts/build.ps1:配置并编译,默认Debug./scripts/run-demo.ps1:配置、编译并启动 demo
示例:
./scripts/build.ps1
./scripts/build.ps1 -Configuration Release
./scripts/run-demo.ps1