|
|
@@ -619,7 +619,8 @@ namespace DuiLib
|
|
|
if (m_pTouchTarget != NULL)
|
|
|
{
|
|
|
TEventUI event = { 0 };
|
|
|
- event.Type = UIEVENT_TOUCHDOWN;
|
|
|
+ // 归一化:直接派发等价鼠标按下事件,使重写了 DoEvent 的控件(CButtonUI 等)也能原生响应手指。
|
|
|
+ event.Type = UIEVENT_BUTTONDOWN;
|
|
|
event.pSender = m_pTouchTarget;
|
|
|
event.ptMouse = pt;
|
|
|
event.dwTimestamp = ::GetTickCount();
|
|
|
@@ -682,7 +683,8 @@ namespace DuiLib
|
|
|
if (m_pTouchTarget != NULL)
|
|
|
{
|
|
|
TEventUI event = { 0 };
|
|
|
- event.Type = UIEVENT_TOUCHUP;
|
|
|
+ // 归一化:直接派发等价鼠标抬起事件(MOVE 仍保持 UIEVENT_TOUCHMOVE 留给 CContainerUI 滚动)。
|
|
|
+ event.Type = UIEVENT_BUTTONUP;
|
|
|
event.pSender = m_pTouchTarget;
|
|
|
event.ptMouse = ptUp;
|
|
|
event.dwTimestamp = ::GetTickCount();
|
|
|
@@ -1269,7 +1271,7 @@ namespace DuiLib
|
|
|
// * 滑动时经过的每个商品 item 都被置上悬浮态(UISTATE_HOT) 且无人清除 —— 多个 item 同时悬浮;
|
|
|
// * 抬起后悬浮态卡死不消失。
|
|
|
// 触摸手势的实际处理(跟手滚动 / 轻触点击)由 CPaintManagerUI 通过 WM_TOUCH 完成,
|
|
|
- // 派发给控件的 UIEVENT_TOUCHDOWN/TOUCHUP;控件自行判断是否 Activate() 触发 click,
|
|
|
+ // 派发成等价鼠标事件 UIEVENT_BUTTONDOWN/BUTTONUP 交给控件;控件按原生鼠标语义判定 Activate() 触发 click,
|
|
|
// 全程不再合成任何鼠标消息(旧的 SynthesizeTap 方案已废弃)。
|
|
|
//
|
|
|
// 作用域天然正确:只有调用过 RegisterTouchWindow 的窗口(所有窗口已在 CPaintManagerUI::Init 注册)才会产生带
|