我有一个问题,当一个窗口在另一个具有 WS_EX_TRANSPARENT 样式的窗口下方更新时,重叠的子窗口没有正确绘制。
父窗口有两个子窗口,W1 和 W2,它们与 W1 在 z 顺序中高于 W2 重叠。W1 具有扩展样式 WS_EX_TRANSPARENT。问题是,当 W2 在其客户区域中绘制时(我正在通过使 W2 无效来测试),W2 完全绘制在 W1 的重叠部分上。如果重绘父级,则两个重叠的子级都以正确的顺序绘制。
当在 W2 上设置 WS_CLIPSIBLINGS 并且从 W1 中删除 WS_EX_TRANSPARENT 时,子窗口被正确绘制。如果 W2 的客户区在这种情况下无效,它会绘制但不会覆盖被 W1 遮挡的部分。
WS_EX_TRANSPARENT 被使用是因为第一个子窗口被用作第二个子窗口的覆盖,我想避免鼠标点击被覆盖阻止。
有没有办法使用 WS_EX_TRANSPARENT 样式正确绘制重叠窗口,或者我可以使用某种解决方法获得相同的行为?