SOUI官方论坛

 找回密码
 立即注册
查看: 188|回复: 0

我似乎参透了层样式窗口左侧拉伸闪烁的秘密

[复制链接]
  • TA的每日心情
    开心
    昨天 09:13
  • 签到天数: 201 天

    [LV.7]常住居民III

    465

    主题

    1099

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    14119
    发表于 2020-9-29 08:16:03 | 显示全部楼层 |阅读模式
    QQ图片20200929080923.gif
    【分神】【react kit】中文id 2020/9/28 22:40:47
    直接使用UpdateLayeredWindow改变窗口大小,不要在此之前触发WM_NCCALCSIZE。

    【管理员】SOUI-凝望着 2020/9/28 22:45:48
    有种把代码发出来
    QQ图片20200929080953.gif

    【008】零零发 2020/9/28 23:11:34
    牛逼

    【分神】【react kit】中文id 2020/9/28 23:11:37
    WM_NCCALCSIZE,返回新的客户区大小、窗口大小。在这个消息返回之前,
    使用这个WM_NCCALCSIZE中的客户区、窗口坐标,重新渲染出一个HDC,update到层样式窗口上去,就没有闪烁问题了。

    【008】零零发 2020/9/28 23:12:53
    你拉右边呢

    【分神】【react kit】中文id 2020/9/28 23:13:07
    因为WM_NCCALCSIZE之后,系统必定会使用当前窗口的HDC内容,进行一次屏幕区域更新,层样式窗口直接就是当前HDC直接拷贝到新坐标,如果WM_NCCALCSIZE之前没有更新渲染,必然会导致闪烁,因为屏幕拷贝之后,才会发送WM_SIZE这样的消息,你要是在这里重新渲染,不同步,就会闪烁了。

    【008】零零发 2020/9/28 23:14:06
    直接自己发一个wmsize能解决不
    QQ图片20200929081206.gif

    【分神】【react kit】中文id 2020/9/28 23:17:07
    直接发wmsize不行。

    【分神】【react kit】中文id 2020/9/28 23:19:28
    xp下表现符合预期。

    【分神】【react kit】中文id 2020/9/28 23:19:41
    我真是太牛逼了,
    QQ图片20200929081238.gif


    【元婴】SOUI 2020/9/28 23:20:24


    【元婴】SOUI 2020/9/28 23:20:43
    微软直呼内行

    【分神】【react kit】中文id 2020/9/28 23:21:17
    一般一般,世界第三。

    【管理员】SOUI-凝望着 2020/9/28 23:22:05
    直呼 牛批


    QQ图片20200929081309.gif

    【分神】【react kit】中文id 2020/9/28 23:24:05
    绝大多数UI库都存在左边拖动,右边会闪烁的问题。困扰了我的很久。

    【008】零零发 2020/9/28 23:25:09
    我把这技术引进到SOUI试试

    【分神】【react kit】中文id 2020/9/28 23:28:06
    WM_NCCALCSIZE,自己处理参数值,或者调用DefWindowProc都行,但是在返回之前,
    你检查那个NCCALCPARAMETERS,从中读取客户区、窗口大小,给渲染模块渲染。

    要改的地方就是渲染模块不能主动调用GetWindowRect、GetClientRect去获取

    【分神】【react kit】中文id 2020/9/28 23:29:41
    这对层样式窗口闪烁有效,对非层样式窗口,要另外hack。

    【融合】Two-Bear 2020/9/28 23:52:09
    soui有API文档吗

    【008】零零发 0:08:03
    没有

    【分神】* Yes 0:45:41

    【分神】【react kit】中文id 0:46:22

    【分神】【react kit】中文id 0:46:36
    搞DirectCompositor支持毛玻璃。

    【008】零零发 2:04:16
    你为何如此牛逼

    【元婴】賈可 7:08:38
    好资料




    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2020-10-24 05:55

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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