a566d98bab1edc4f6e1d53f797040ce32a4fce11
- 信号悬停提示改为真正跟随鼠标(PaintSignalInteraction 用 m_mouseX/m_mouseY 定位, 删除 m_hoverAnchorX/m_hoverAnchorY)。 根因:OnMouseMove 只在状态变化时返回 changed,仅鼠标位置变化时返回 false, 宿主不重绘 → 提示停在上一帧位置。现补上 `if (m_hoverSignal.IsValid() && mouseMoved) changed = true;`(mouseMoved 由前后坐标比较得出), 鼠标在可拖拽区域内持续移动时提示条会跟随。 - 可拖拽信号的光标响应参考 Photoshop 平移元素: 悬停时用手掌光标(IDC_HAND),按住左键拖拽途中用抓握光标(IDC_SIZEALL)。 - 双光标增量差值:改为**只**由"右侧光标"(时间较大的那条)显示, 按差值显式给出正负号(+ / -,不再固定用 ±);把右光标拖到左侧后, 增量会自动改由新的右侧光标显示。(判定改用时间比较,不再用 m_activeCursor。) - 光标时间读数标签与 Δt 差值标签:悬停(未按下)时不再改变鼠标光标, 真正拖拽时统一使用左右箭头(IDC_SIZEWE)。 两个标签都叠在光标线正上方,因此在 QueryCursor 中必须先于光标线判定返回 nullptr, 否则会命中光标线给出 SIZEWE。 - Δt 差值文案由 "Δt " 改为 "Δt:"(全角冒号)。 - 一并移除遗留的 TEMP-PROBE 调试输出(HitTestSignal / PaintSignalInteraction / OnMouseMove 探针)与已不再使用的 m_dragOnLabel。 验证(TestData/VERY_BIG_DATA.CSV,编码器A相密集方波,125%、1725x996): - 提示跟随:悬停 (700,250)→(700,400)→(760,620)→(900,700) 后, 提示条出现在最后一次鼠标位置旁(截图核对),不再停留在首次出现处。 - 光标形态探测:信号悬停 = HAND;拖拽信号 = SIZEALL; 时间读数标签/Δt 标签悬停 = ARROW(不改变);Δt 标签拖拽 = SIZEWE; 时间读数标签拖拽 = SIZEWE;光标线上方悬停 = SIZEWE。 - 增量归属:默认双光标左 4.9417(无增量)/ 右 4.9425 , +0.0008; 把右光标拖到左侧后变为左 0.288688(无增量)/ 右 4.9417 , +4.65301; 把右光标拖到低电平处得到 4.80724 , -0.134458(负号正确)。 - Δt 文案:截图确认显示 "Δt: 15s 457.214ms"。 - 回归([1].CSV 双光标):左 426.316(无增量)/ 右 538.583 , +112.267; Δt:151ms 200us。 - make clean && make all 无警告无错误。
Languages
C++
99.5%
Makefile
0.5%