我想改变另一个窗口的不透明度。我设法使用SetWindowLong和SetLayeredWindowAttributes更改不透明度,但它不会直接应用。当我更改不透明度时:窗口将变为透明,但当我再次将其更改为另一个不透明度时,不透明度会消失。
这是如何构成的,如何解决这个问题,这是一个重绘问题吗?我也尝试过两次相同的不透明度;如果你这样做会发生同样的事情。
这就是我改变不透明度的方法:
public void Opacity(IntPtr WindowHandle, byte WindowOpacity)
{
SetWindowLong(WindowHandle, -20, GetWindowLong(WindowHandle, -20) ^ 0x080000);
SetLayeredWindowAttributes(WindowHandle, 0, WindowOpacity, 0x002);
}