如题。
我在代码里可以用SetLayeredWindowAttributes设置窗口的透明度,但是想用GetLayeredWindowAttributes来取窗口的透明度时,提示我这个函数没定义。
需要引入什么单元吗?
我就是想先取出一个目标窗口的透明度,然后设置一下透明度比如半透明或者全透明,然后再恢复该窗口原来的透明度。
我在代码里可以用SetLayeredWindowAttributes设置窗口的透明度,但是想用GetLayeredWindowAttributes来取窗口的透明度时,提示我这个函数没定义。
需要引入什么单元吗?
我就是想先取出一个目标窗口的透明度,然后设置一下透明度比如半透明或者全透明,然后再恢复该窗口原来的透明度。
targetStyle : longint;
originStyle:=getWindowLong(Hwnd, GWL_EXSTYLE);
targetStyle := originStyle Or $80000;
SetWindowLong (Hwnd, GWL_EXSTYLE, targetStyle);
//透明度在0~255之间
SetLayeredWindowAttributes(Hwnd, 0, 180, 2);
sleep(5000);
//恢复
SetWindowLong (Hwnd, GWL_EXSTYLE, originStyle); 以上代码实现了透明度和恢复。
但还是不知道怎么取原来的透明度,originStyle肯定不是,因为他不是0-255的一个值。
另外还不知道到底Delphi里有没有GetLayeredWindowAttributes函数,以及怎么引入
var Alpha: Byte; var Flags: LongInt): BOOL; stdcall; external 'user32.dll';procedure TForm1.Button1Click(Sender: TObject);
var
c: COLORREF;
a: Byte;
f: LongInt;
begin
GetLayeredWindowAttributes(Handle, c, a, f);
end;
AlphaBlend := True;
谢谢大家的回答。