GetWindowLongA - 獲得有關指定窗口的信息


函數原型

 
LONG GetWindowLong(HWND hWnd,int nlndex);
GetWindowLongA是一個ANSI編碼的API函數,另外還有一個是Unicode編碼的 GetWindowLongW
寫兼容性代碼時可使用GetWindowLongPtrA,這樣32位和64位系統會自動轉換。
函數功能:該函數獲得有關指定窗口的信息,函數也獲得在額外窗口內存中指定偏移位地址的32位度整型值。

參數

hWnd

窗口句柄及間接給出的窗口所屬的窗口類。

nlndex

指定要獲得值的大於等於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” + 取十六進制文本 (獲取值) + “)” + 到文本 (獲取值)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM