Delphi SetWindowlong 設置窗口屬性
SetWindowLong函數介紹。
SetWindowLong Unicode
函數原型
LONG SetWindowLong(hwnd,nIndex,lNewLong)
HWND hwnd; /* handle of window */
int nIndex; /* offset of value to set */
LONG lNewLong; /* new value */
函數說明
SetWindowLong函數修改給定窗口的一個屬性。該函數還在給定窗口的附加窗口內存中
的指定偏移量處設置一個32位(長)值。
參數詳解
hwnd
標識窗口,並且間接標只出該窗口的屬的窗口類。
nIndex
指定一個距離要設置的值的以0為基值的偏移量。有效的偏移量范圍最小為0,最大為附
加窗口內存的總字節數減為4,注:整數為四個字節;例如:若附加內存被指定為12個或
更多個字節,值8將是第3個長整數的索引值。要設置其它值,則應指定下列值之一:
值 動 作
============================================================================
GWL_EXSTYLE 設置新的擴展窗口風格。
GWL_STYLE 設置新的窗口風格
GWL_WNDPROC 為窗口過程設置新地址。
GWL_HINSTANCE 設置一個新的應用程序的實例句柄。
GWL_ID 設置一人新的窗口標識符。
GWL_USERDATA 設置與窗口相聯系的長值。每個窗口都有一個供創建它的應用
程序使用的與之對應的長值。
當hwnd標識一個對話框時,還可使用下列值:
值 含 義
============================================================================
DWL_DLGPROC 設置對話框過程的新地址。
DWL_MSGRESULT 設置對話框過程所處理的消息的返回值。
DWL_USER 設置對應用程序來說是私有的新的附加信息:如句柄或打印機
。
lNewLong
指定該替換值。
返回值
若函數成功,返回值是指定的32位整數的原值;否則,返回值為0。使用GetLastError
函數可獲取補充的錯誤信息。
注釋
若使用SetWindowLong函數和GWL_WNDPROC索引替換窗口過程,則給定的窗口過程必須遵
循WindowProc回調函數的說明中指定的准則。
使用GWL_WNDPROC索引調用SetWindowLong函數可創建該窗口類的子類(窗口類用來創建窗
口)。應用程序不得用另一個過程的窗口產生子類。
使用RegisterClass函數,並將WNDCLASS結構的cbWndExtra成員指定為一個非零值,便可
保留附加窗口內存。
不得將SetWindowLong與GWL_HWNDPARENT索引一起使用來改變一個子窗口的父窗口。要
改變子窗口的父窗口,應使用SetParent函數。