SOUI官方论坛

 找回密码
 立即注册
查看: 138|回复: 3

在template绘制内容绘制位置出错解决方案

[复制链接]

该用户从未签到

10

主题

41

帖子

879

积分

04:00化神期

Rank: 4

积分
879
发表于 2019-12-10 19:22:21 | 显示全部楼层 |阅读模式
本帖最后由 Ghostits 于 2019-12-10 19:22 编辑

写了一个控件在onpaint,通过pRT->GetDC获取DC,并通过GetClientRect获取绘制位置 绘制位图,不作为view控件(tileview、listview等)的item 的template使用的时候正常,
但做为template使用的时候,无论是哪个item,绘制的位置都是真窗口的左上角。
分析:
template内的控件GetClientRect的值永远都是{0,0,width, height},也就导致了绘制起点是真窗口的左上角。
可能的原因:soui并没有为template计算布局信息,没有父Swnd,只是单纯作为一个控件容器。
解决方案:
为template 添加绘制缓存 即在布局脚本中 cache=“1”,让view控件绘制内容。

  • TA的每日心情
    开心
    昨天 08:14
  • 签到天数: 2 天

    [LV.1]初来乍到

    357

    主题

    792

    帖子

    6871

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    6871
    发表于 2019-12-11 10:26:58 | 显示全部楼层
    谢谢楼主分享

    该用户从未签到

    4

    主题

    67

    帖子

    1388

    积分

    06:00合体期

    Rank: 6Rank: 6

    积分
    1388
    发表于 2020-1-1 10:04:21 | 显示全部楼层
    这也太6了吧

    该用户从未签到

    20

    主题

    237

    帖子

    1017

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    1017

    突出贡献优秀版主

    发表于 2020-1-3 11:11:19 | 显示全部楼层
    template只是使用CreateChildren从XML创建新控件。在创建的时候获取位置是获取不到的。
    你这样做估计以后还是会有问题。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

    GMT+8, 2020-1-18 08:09

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表