函數原型
LONG
GetWindowLong(
HWND
hWnd,
int
nlndex);
GetWindowLongA是一個ANSI編碼的API函數,另外還有一個是Unicode編碼的
GetWindowLongW
寫兼容性代碼時可使用GetWindowLongPtrA,這樣32位和64位系統會自動轉換。
函數功能:該函數獲得有關指定窗口的信息,函數也獲得在額外窗口內存中指定偏移位地址的32位度整型值。
參數
hWnd
指定要獲得值的大於等於0的值的偏移量。有效值的范圍從0到額外窗口內存空間的字節數一4例如,若指定了12位或多於12位的額外類存儲空間,則應設為第三個32位
整數的索引位8。
要獲得任意其他值,指定下列值之一(
在代碼中使用時,英文名和數字皆可):
GWL_EXSTYLE: -20
獲得擴展窗口風格。
GWL_STYLE: -16
獲得窗口風格。
GWL_WNDPROC: -4
獲得窗口過程的地址,或代表窗口過程的地址的句柄。必須使用GWL_WNDPROC函數調用窗口過程。
GWL_HINSTANCE: -6
獲得應用事例的句柄。
GWL_HWNDPAAENT:-8
如果父窗口存在,獲得父窗口句柄。
GWL_ID: -12
獲得窗口標識。
GWL_USERDATA: -21
獲得與窗口有關的32位值。每一個窗口均有一個由創建該窗口的應用程序使用的32位值。
在hWnd參數標識為一個對話框時也可用下列值:
DWL_DLGPROC:獲得對話框過程的地址,或一個代表對話框過程的地址的句柄。必須使用函數CallWindowProc來調用對話框過程。
DWL_MSGRESULT:獲得在對話框過程中一個消息處理的返回值。
DWL_USER:獲得應用程序私有的額外信息,例如一個句柄或指針。
返回值:
如果函數成功,返回值是所需的32位值;如果函數失敗,返回值是0。若想獲得更多錯誤信息請調用 GetLastError函數。
備注:通過使用函數RegisterClassEx將結構WNDCLASSEX中的cbWndExtra單元指定為一個非0值來保留額外類的存儲空間。
Windows CE:nlndex參數指定的字節偏移量必須為 4的倍數。不支持 unaligmned access。
Windows CE:不支持在參數nlndex中設定的GWL_HINSTANCE和GWL_HWNDPARENT。
Windows CE1.0也不支持在 nlndex參數中的 DWL_DLGPROC和 GWL_USERDATA。
速查:
Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0對以上版本;
頭文件:winuser.h;
庫文件:user32.lib;
在Windows NT上實現為Unicode和ANSI兩種版本。
易語言示例:
.版本 2
GetCursorPos (光標位置) '從當前光標位置獲取其坐標(x,y)
窗口句柄值 = WindowFromPoint (光標位置.x, 光標位置.y) '獲得包含指定點的窗口的句柄
獲取值 = GetWindowLong (窗口句柄值, -16)
窗口風格.內容 = “(&H” + 取十六進制文本 (獲取值) + “)” + 到文本 (獲取值)
獲取值 = GetWindowLong (窗口句柄值, -16)
窗口風格.內容 = “(&H” + 取十六進制文本 (獲取值) + “)” + 到文本 (獲取值)