Window API函數,可根據nlndex參數的不一樣獲取指定窗口的相關信息,
也可用於獲取窗口內存中指定偏移的32位度整型值。該值大小在註冊窗口類時設定,函數
函數原型:
Long GetWindowLong(HWND hWnd, int nlndex);spa
第一個參數:HWND 須要操做的窗口句柄。指針
第二個參數:nlndexcode
1.若大於0,返回窗口內存中指定偏移量的32位值
有效範圍爲0到存儲空間的字節數減4,
好比指定了12個字節的額外窗口存儲空間,則應設置8來訪問第三個4字節,設置4來訪問第二個4字節
設置0來訪問第一個4字節空間,blog
2.也能夠設置如下數據: 描述發的內存
#define GWL_WNDPROC (-4) //獲取窗口過程地址或句柄。必須使用CallWindowProc函數調用獲取的窗口過程。 #define GWL_HINSTANCE (-6) //獲取應用實例句柄 #define GWL_HWNDPARENT (-8) //獲取全部者窗口句柄 #define GWL_STYLE (-16) //得到窗口樣式 #define GWL_EXSTYLE (-20) //獲取擴展窗口樣式 #define GWL_USERDATA (-21) //獲取用戶設置的32位數據,其值默認爲0 #define GWL_ID (-12) //獲取窗口ID hWnd參數爲對話框句柄時,還可用下列值: #define DWL_MSGRESULT 0 //獲取在對話框過程當中某消息的返回值。 #define DWL_DLGPROC 4 //獲取對話框過程地址或句柄。必須使用CallWindowProc函數來調用對話框過程。 #define DWL_USER 8 //獲取應用程序專用的額外信息,例如一個句柄或指針。
返回值:原型
若是函數成功,返回值是指定的32位整數的原來的值。若是函數失敗,返回值爲0。class
可是,若是指定的32位整數值爲0 函數成功將返回0,變量
補充:擴展
窗口的額外存儲空間有註冊窗口類時經過設置如下參數指定;
wndclass.cbWndExtra = sizeof(long); 該段代碼爲使用該窗口類註冊的串口預留了 一個長整形變量大小的額外空間。
同時能夠經過 SetWindowLong() 函數來改變該值
SetWindowLong(hwnd,0,1) //設置第一個4字節的值
SetWindowLong(hwnd,4,2) //設置第二個4字節的值
SetWindowLong(hwnd,8,3) //設置第三個4字節的值