加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

qt – win32控件(QWinHost)未在分层(即半透明)小部件上绘制(WS_E

发布时间:2020-12-14 05:36:35 所属栏目:Windows 来源:网络整理
导读:我使用QWinHost移植了一个win32控件,并将其放在一个分层(半透明)小部件上.当我设置WS_EX_LAYERED标志时,win32移植控件没有出现绘制. SetWindowLong(winId(),GWL_EXSTYLE,GetWindowLong(winId(),GWL_EXSTYLE) | *WS_EX_LAYERED*); 解决方法 您需要告诉Windows
我使用QWinHost移植了一个win32控件,并将其放在一个分层(半透明)小部件上.当我设置WS_EX_LAYERED标志时,win32移植控件没有出现绘制.

SetWindowLong(winId(),GWL_EXSTYLE,GetWindowLong(winId(),GWL_EXSTYLE) | *WS_EX_LAYERED*);

解决方法

您需要告诉Windows如何绘制分层窗口. MSDN说有两种方式;你几乎肯定想要 SetLayeredWindowAttributes,因为你不想改变控件的绘画代码.

所以之后

SetWindowLong(winId(),GWL_EXSTYLE) | WS_EX_LAYERED);

SetLayeredWindowAttributes(winId(),RGB(0,0),bAlpha,LWA_ALPHA);

(当然,根据您的需要调整).

请注意,分层窗口必须是以下Windows 7上的顶级窗口;只有Windows 8及更高版本支持分层子窗口.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读