gpt4 book ai didi

c++ - Blt() 创建图层效果。不工作。我是在使用错误的逻辑函数还是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:31:10 25 4
gpt4 key购买 nike

我有一个窗口,由各种对象绘制以创建分层效果(想想平视显示器,其中一个对象绘制指南针,另一个绘制网格线,另一个绘制高度计读数等)。因此,每个对象都有一个它绘制到的黑色内存位图。当我调用该对象的 Draw 函数时,内存位图被 blits 到应用程序窗口。内存位图一开始都是黑色的,对象在上面绘制。黑色是透明色,所以它被遮盖了。结果是叠加效果。

因此,我一直在 blt() 函数中使用 OR 作为我的逻辑函数并且它起作用了。但是,我注意到,如果前一层涂成白色,那么在它上面绘制的图层看起来就像在前一层下面。白色(ish)颜色是唯一发生这种效果的颜色。所有其他颜色都正确绘制(也就是说,该图层看起来像是在前一个图层之上绘制的,依此类推)。有人见过这种现象吗?

最佳答案

您为此使用了错误的函数。如果您尝试覆盖的像素恰好是黑色,则使用带有逻辑 OR 的 BitBlt 将起作用,但如果您将两种非零颜色与 OR 组合,则会得到奇怪的结果。尝试改用 TransparentBlt。该函数可让您明确指定哪种颜色应该是透明的。

关于c++ - Blt() 创建图层效果。不工作。我是在使用错误的逻辑函数还是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/966138/

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