duilib中,如何将整个容器作为一个按钮响应点击事件
发布时间:2026.07.09
1、需要设置手指光标;
2、所有点击事件由到容器响应。
一、控件设置手指光标需要两步:
1、重载UINT GetControlFlags() const,返回UIFLAG_SETCURSOR;
2、在DoEvent中响应UIEVENT_SETCURSOR时调用::SetCursor(::LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND)))。
参考控件CHorizontalLayoutExUI、CVerticalLayoutExUI、CLabelExUI。
二、所有点击事件由到容器响应
CControlUI增加了属性m_bPointerThrough,xml tag为pointerthrough,当其值为true时,点击事件直接传递给父容器自身不处理。
所以,为了使一个容器响应点击事件,可如下设置:
1、最外层容器使用VerticalLayoutEx或HorizontalLayoutEx,pointerthrough设置为false,设置一个name;
2、内部容器也使用VerticalLayoutEx或HorizontalLayoutEx,但是pointerthrough设置为true,将点击事件由父容器处理;
3、内部的文本或图片显示使用LabelEx,属性bordersize="0" setcursor="true" pointerthrough="true"
然后就可以响应DUI_MSGTYPE_CLICK了
参考 appstore/appcell.xml
上一篇:openSSL使用方法
下一篇:没有了!
