客户服务

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使用方法

下一篇:没有了!

相关推荐

copyright©2010-2023深圳市点特科技有限公司 粤ICP备14069711号

尊敬的客户您好,请您留下您的需求和联系方式,我们将安排客服与您联系!

称呼

您的联系方式

您的公司名称