GetWindowLong
SetWindowLong
这两个函数不明白.麻烦帮我解释一下.不要拿百度的.我根本看不懂什么意思,不要用专业术语
procedure TForm1.TrackBar1Change(Sender: TObject);
var
h: HWND;
FormStyle: Integer;
begin
h := FindWindow('Notepad', nil);
if h <> 0then
begin //GetWindowLong获得指定句柄扩展窗口风格?返回的是什么东西?别说什么32位的值.完全不明白
FormStyle := GetWindowLong(h, GWL_EXSTYLE);
//SetWindowLong第3个参数和第四个参数什么意思
SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
SetLayeredWindowAttributes(h, 0,trackbar1.Position, LWA_ALPHA);
end;
end;
SetWindowLong
这两个函数不明白.麻烦帮我解释一下.不要拿百度的.我根本看不懂什么意思,不要用专业术语
procedure TForm1.TrackBar1Change(Sender: TObject);
var
h: HWND;
FormStyle: Integer;
begin
h := FindWindow('Notepad', nil);
if h <> 0then
begin //GetWindowLong获得指定句柄扩展窗口风格?返回的是什么东西?别说什么32位的值.完全不明白
FormStyle := GetWindowLong(h, GWL_EXSTYLE);
//SetWindowLong第3个参数和第四个参数什么意思
SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
SetLayeredWindowAttributes(h, 0,trackbar1.Position, LWA_ALPHA);
end;
end;
LONG GetWindowLong( HWND hWnd,int nIndex )参数:
hWnd:指定窗口的句柄
nIndex:需要获得的信息的类型返回值:
成功时,返回一个请求的32位的值
失败时,返回0,可以使用GetLastError来取得错误信息
==============================
nIndex : GWL_EXSTYLE 得到扩展的窗口风格FormStyle := GetWindowLong(h, GWL_EXSTYLE);
------------------------------
根据窗体句柄获得扩展的窗口风格-------32位的整形值.
比如
窗口置顶:WS_EX_TOPMOST=8
工具栏窗口:WS_EX_TOOLWINDOW=128
组成的返回值就是WS_EX_TOPMOST + WS_EX_TOOLWINDOW = 136SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
-----------------------------
对当前句柄的窗体设置扩展的窗口风格, 新风格值是FormStyle or WS_EX_LAYERED