Files
StellarX-kaifa/开发记录/功能变更/Feature-20260409-0002-Dialog与MessageBox行为调整.md
T

72 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 功能变更 ID: Feature-20260409-0002
> 适用场景:记录小到中等规模的功能、接口、行为、默认值或配置变化。
> 不适用场景:新增核心模块、重大模块重构、架构级设计,请使用“新增功能模块”模板。
## 基本信息
- ID: Feature-20260409-0002
- 标题: Dialog 与 MessageBox 行为调整
- 状态:已完成
- 类型:修改
- 级别:L2 中等
- 模块:Dialog / MessageBox / Window
- 版本 / 分支:`master`
- 环境:Windows + EasyX + VS2022
- 负责人:Codex 协作修改
## 变更背景
- 背景:
- 初始版本中 `Dialog` 的初始化、resize、标题绘制和 `MessageBox` 外层调用关系较松散。
- 目标:
- 明确 `Dialog` 行为边界,让其在 resize、显示、关闭、标题更新等场景更稳定。
- 不做什么:[可选]
- 暂不重命名 `setInitialization()` 这类历史接口。
## 变更内容
- 变更摘要:
- `Dialog` 在窗口变化时只重新居中;标题直接由 `Dialog` 自身绘制;`MessageBox` 不再外层强制初始化。
- 新增项:[可选]
- `Dialog::recenterInHostWindow()`
- 修改项:[可选]
- `SetTitle / SetMessage / SetType` 触发重新布局
- `Dialog` 标题不再使用独立 `Label`
- `Dialog` 在模态和非模态场景中的重绘语义被收紧
- 删除 / 废弃项:[可选]
- `MessageBox::showAsync/showModal()` 中对 `setInitialization(true)` 的直接调用已移除
- 受影响的文件 / 类 / 函数:
- `Dialog.h / Dialog.cpp`
- `MessageBox.cpp`
- `Window.cpp`
- 对外 API / 属性变化:[可选]
- `Dialog` 在窗口变化时的对外可观察行为改为“只居中,不拉伸”
## 行为对照
- 变更前:
- `Dialog` resize 时可能重建行为与快照行为混杂,标题区域额外依赖子控件快照。
- 变更后:
- `Dialog` 尺寸由内容决定;窗口变化只重新居中;标题直接绘制,减少一层快照时序问题。
- 兼容性说明:部分兼容
- 迁移说明:[可选]
- 如果外部逻辑曾假设 `Dialog` 会跟随窗口拉伸,现在需要改按“仅居中”理解
## 验证与落地
- 验证方式:
- `KEY == 2 / 3 / 4` 相关场景静态推演与回归
- 验证结果:
- 标题更新、消息框初始化链、resize 后位置语义更稳定
- 关联 BUG / Fix[可选]
- `BUG-20260409-0001`
- `Fix-BUG-20260409-0001`
- Commit:
- `4a6e153`
- `7f8431a`
- 当前工作区部分未提交整理
- PR[可选]
- 发布版本:[可选]
- 备注:[可选]