gpt4 book ai didi

c++ - All-aero 窗口混合了控件的颜色——如何避免这种情况

转载 作者:行者123 更新时间:2023-11-28 06:00:43 25 4
gpt4 key购买 nike

我正在寻找一种将自定义控件绘制到对话框的客户端和非客户端区域的方法。大致就是下面的白色区域

enter image description here

我使用了 DwmExtendFrameIntoClientArea 并且我设法通过在整个窗口上扩展客户区来获得这种效果

MARGINS mar = {-1, -1, -1, -1};

DwmExtendFrameIntoClientArea ( hWnd, &mar );

但是现在我设置了透明背景的每个控件

SetBkMode(hdc, TRANSPARENT);

将它们的颜色与航空 Material 混合(同样的问题 you can see here)。

有没有办法让控件保持正确的颜色并避免与背景混合?

最佳答案

这是因为窗口将黑色作为透明键。

你只需要设置另一个值:

SetWindowLong(hWnd,GWL_EXSTYLE,WS_EX_LAYERED);
// Choose a colour that you will not use in the program, eg RGB(200,201,202)
SetLayeredWindowAttributes(hWnd,RGB(200,201,202),0,LWA_COLORKEY);

关于c++ - All-aero 窗口混合了控件的颜色——如何避免这种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33334066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com