-
SetWindowLongPtr
鎖定
函數功能:該函數改變指定窗口的屬性。函數也將指定的一個值設置在窗口的額外存儲空間的指定偏移位置。
該函數用於取代SetWindowLong函數。如果您想要您編寫的代碼兼容32位和64位版本的Windows系統,請使用SetWindowLongPtr函數。
SetWindowLongPtr函數原型
LONG_PTRSetWindowLongPtr(HWND hWnd,int nIndex,LONG_PTR dwNewLong);
SetWindowLongPtr參數説明
1、hWnd:窗口句柄,間接給出窗口所屬的類。
2、nlndex:指定將設定的大於等於0的偏移值。有效值的範圍從0到額外類的存儲空間的字節數減去一個整型的大小(-sizeof(int))。要設置其他任何值,可以指定下面值之一:
nlndex | 説明 |
---|---|
GWL_EXSTYLE | 設定一個新的擴展風格。更多信息,請見CreateWindowEx。 |
GWL_STYLE | 設定一個新的窗口風格。 |
GWL_WNDPROC | 為窗口過程設置一個新的地址。 |
GWL_HINSTANCE | 設置一個新的應用程序實例句柄。 |
GWL_ID | 設置一個新的窗口標識符。 |
GWL_USERDATA | 設置與該窗口相關的用户數據。這些用户數據可以在程序創建該窗口時被使用。用户數據的初始值為0。 |
當hWnd參數標識了一個對話框時,也可使用下列值: | |
DWL_DLGPROC | 設置對話框過程的新地址。 |
DWL_MSGRESULT | 設置對話框中的消息處理程序的返回值。 |
DWL_USER | 設置的應用程序所私有的新的額外信息,例如句柄或指針。 |
3、dwNewLong:指定的替換值。
SetWindowLongPtr返回值
如果函數成功,則返回所指定的偏移量的前一個值。
如果函數失敗,則返回0。若想獲得更多的錯誤信息,請調用GetLastError函數。
注意:可以存在這樣一種情況,就是如果如果函數成功,且所返回的指定的偏移量的前一個值恰好為0,這時函數的返回值也為0。這中情況下,如果我們想知道SetWindowLongPtr( )函數到底運行成功了沒有,可以通過如下的方法得知:
1、先調用SetLastError(0),清除最後的錯誤信息。
2、調用SetWindowLongPtr( )。這時如果SetWindowLongPtr( )函數的返回值為0。
3、再調用GetLastError( ),獲取最後的錯誤信息。如果GetLastError( )的返回值為非0的話,則SetWindowLongPtr( )函數運行失敗。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:9次歷史版本
- 最近更新: 亡命听