网页界面之外,7.1.0 仍保留并维护着一套原生客户端(CDC Kit)。它在没有浏览器、或用户更习惯桌面程序的场景下使用,接口能力与网页版一致。
八个功能页
| 页面 | 内容 |
|---|---|
| 数据生成 | 类型、范围、长度、个数、输出目录、时间戳目录 |
| 自编译 | g++ 路径、AC 源码、编号范围,批量产出 .out |
| 打包 ZIP | 源目录与输出路径 |
| 实用工具 | 系统小工具集合 |
| 账号 | 注册、登录、激活码、次数查询 |
| 私信 | 联系人列表与对话 |
| AI 助手 | 双模式对话 |
| 设置 | 主题、编译器、云端配置 |
页面切换用的是同一窗口内重建控件的方式:切页时先清掉上一页的控件,再按当前页的布局重新创建。好处是每个页面的控件状态互不干扰,坏处是切换瞬间有一次重建开销。
static void BuildPage(int idx) {
ClearPageControls(); // 拆掉上一页的控件
switch (idx) {
case 0: BuildDataGenPage(); break;
case 1: BuildCompilePage(); break;
case 2: BuildPackPage(); break;
case 3: BuildToolsPage(); break;
case 4: BuildAccountPage(); break;
case 5: BuildMessagesPage(); break;
case 6: BuildAIPage(); break;
case 7: BuildSettingsPage(); break;
}
}配色:八套星空主题
7.1.0 重做了整套配色,八套预设都是「深色星云底 + 跳色强调」的路子,与官网视觉统一:
| 主题 | 主色倾向 | 强调色 |
|---|---|---|
| 星空蓝 | 深蓝底 | 冷蓝 |
| 暗夜紫 | 紫黑底 | 紫 |
| 星云青 | 青黑底 | 青绿 |
| 深空金 | 暖褐底 | 金 |
| 星尘粉 | 暗红底 | 粉 |
| 极光绿 | 墨绿底 | 极光绿 |
| 星云赤 | 暗红底 | 赤红 |
| 晨雾白 | 浅色底 | 蓝紫 |
struct Theme {
wstring name;
Color bg, bg2, panel; // 底色 / 次级底色 / 面板色
Color accent, text, textDim; // 强调色 / 正文 / 次要文字
Color border, hover, sel; // 描边 / 悬停 / 选中
};
static void InitThemes() {
g_themes = {
{ L"星空蓝", Color(15,21,48), Color(8,12,26), Color(19,26,54),
Color(138,180,255), Color(238,241,250), Color(141,150,184), ... },
...
{ L"晨雾白", Color(240,243,250), Color(246,248,253), Color(234,238,248),
Color(88,110,210), Color(30,41,59), Color(120,135,160), ... },
};
}自绘与渲染
- 圆角与描边 —— 用
GraphicsPath手写圆角路径,AddRoundRectPath负责把半径限制在w/2、h/2之内,避免小控件画出畸形圆角 - 侧栏与按钮 —— 侧栏自行绘制;按钮走 owner-draw,这样才能做出悬停、按下、选中三态的一致配色
- 窗口圆角与深色标题栏 —— 通过
DwmSetWindowAttribute申请,Windows 11 上生效,Windows 10 上调用不报错但无视觉效果 - 磨砂质感 —— 可选开关,开启后窗口背景做半透明效果,代价是重绘开销上升