GetWindowLong() 函數

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字節的值 

相關文章
相關標籤/搜索