zoukankan      html  css  js  c++  java
  • 用了WS_EX_LAYERED 后所有Twincontrl的wm_paint消息会停止(官方Layered Windows文档很多内容)good

    fmx 和 vcl 不一样, fmx 的阴影可以通过2D显示出来。 VCL 无标题栏窗口的阴影很麻烦

    280425268

    我也是用两个窗口做阴影,并重绘了非客户区,不过阴影是基础自TwinControl,没继承TFrom。用spy探测office 2013,发现他也是用了2个句柄window,office 2013阴影也是一个有句柄的window做的,而QQ只用了一个窗口,使用WS_EX_LAYERED风格,阴影和界面全在一个窗口画出来

    两个窗口怎么叠加??自己窗口不用的原因是因为,不能影响当前窗口的子控件的绘制??
    不是两个窗口叠加,是WS_EX_LAYERED 阴影窗口跟随目标窗口,跟随移动、改变尺寸

    在Form的后面再放一个TWinControl?这个TWinControl是怎么显示的?有没有可能会被单独关掉?
    用api SetWindowPos显示

    fmx不用这么干,fmx和qq的类型一样,可以直接画,因为fmx的控件都是画出来的,用WS_EX_LAYERED不受影响,而vcl用了WS_EX_LAYERED 后所有Twincontrl的wm_paint消息会停止,Twincontrl控件不会再画出来了
    Twincontrl 收不到wm_paint,摆在上面的非win控件也不会绘制,所以vcl窗口改成WS_EX_LAYERED风格后,窗口会一片空白,什么控件都不显示
    正是因为windows窗口 WS_EX_LAYERED半透明的机制才导致了两种阴影方案,一种是以句柄为基础的的ui框架像vcl,office 需要用用另外一个WS_EX_LAYERED窗口绘制阴影,只用一个WS_EX_LAYERED窗口的话上边的句柄控件显示不出来。 另一种就是fmx,qq这种所有控件都是自己画出来的ui框架,没有WS_EX_LAYERED显示不出句柄控件的烦恼,只用一个WS_EX_LAYERED窗口在这上面做阴影就行

    setWindowOpacity()设置透明度的
    setAttribute(Qt::WA_TranslucentBackground,true); 设置透明的

    官方文档:
    https://msdn.microsoft.com/en-us/library/ms997507.aspx
    https://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx


    搜索“WS_EX_LAYERED”一大堆资料
    http://stackoverflow.com/questions/10513716/creating-a-transparent-child-window-on-top-of-non-transparent-parent-window-wi
    https://github.com/DmitrySikorsky/StarryNight
    http://www.programering.com/a/MzNxkTNwATY.html
    https://forum.powerbasic.com/forum/user-to-user-discussions/powerbasic-for-windows/40049-making-a-childwindow-transparent-or-combining-ws_ex_layered-with-ws_child
    https://weseetips.wordpress.com/tag/ws_ex_layered/
    http://stackoverflow.com/questions/19951379/ws-ex-layered-invisible-window-and-a-fresh-install-of-windows

  • 相关阅读:
    AT5200 [AGC038C] LCMs 莫比乌斯反演
    P5445 [APIO2019]路灯 树套树
    CF617E XOR and Favorite Number 莫队
    P5404 [CTS2019]重复 KMP自动机
    P4364 [九省联考2018]IIIDX 线段树上二分
    P3749 [六省联考2017]寿司餐厅 最大权闭合子图
    CF906E Reverses PAM+border
    AGC 补题记录
    做题记录
    题解 loj #3524. 「IOI2021」钥匙
  • 原文地址:https://www.cnblogs.com/findumars/p/6307235.html
Copyright © 2011-2022 走看看