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;
uj5u.com熱心網友回復:
函式原型: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 = 136
SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
-----------------------------
對當前句柄的表單設定擴展的視窗風格, 新風格值是FormStyle or WS_EX_LAYERED
uj5u.com熱心網友回復:
暈.都說別拿百度東西了.說了等于沒說,還是不懂
uj5u.com熱心網友回復:
暈,你了解視窗類嗎?WNDCLASSEX。。不知道說什么都是白搭uj5u.com熱心網友回復:
兄弟,你先了解一下Windows底層機制:Win32視窗類和訊息回圈機制轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/146328.html
標籤:語言基礎/算法/系統設計
下一篇:Dll里有一個FORM 退出出錯
