zoukankan      html  css  js  c++  java
  • duilib listUI滚动列表的时候回出现在LIst外面显示的情况

    今天做的使用listui来查看数据发现的一个bug:当list控件的滚动条移动的时候,列表项只有一部分显示在list上面的时候剩余的一部分偶尔会显示到界外。

    刚开始查看listui的时候,认为应该是setpos的时候,计算错误导致的问题。这么判断的依据是因为在移动滚动条的时候会产生刷新然后会引发重绘。然后就会引发setpos从而更新列表。但是跟进去的时候发现计算的全部是正确的。

    既然计算都是正确的,那应该是在setpos之后又引发了更新。然后继续跟,发现之后会引发OnPaint操作,对所有的控件进行相应的更新。但是在OnPaint的时候发现了一个奇怪的情况每次调用OnPaint的时候进行绘制使用的是本身控件的RECT而不是本身控件的RECT跟本身控件所在区域的交集。所以传进去的pControl->DoPaint(hDC, rcPaint);应该修改成经过::IntersectRect(&rcTemp, &rc, &pControl->GetPos())计算完成的rcTemp而不是rcPaint。

    所以使用OnPaint进行操作时的计算刷新区域失误而导致的一部分数据显示到外界。

  • 相关阅读:
    占位
    阳光服务平台-敏捷开发
    两种方法实现带验证码的用户登录
    红警大战JAVA简单版
    JPanel与JFrame的区别
    java中import详解
    敏捷开发
    GitHub:本地项目上传与团队协作
    从结缘计算机到未来规划
    (三)微信小程序首页的分类功能和搜索功能的实现笔记
  • 原文地址:https://www.cnblogs.com/cxiaoln/p/4839327.html
Copyright © 2011-2022 走看看