SetWindowLongPtr

函式功能:該函式改變指定視窗的屬性。函式也將指定的一個值設定在視窗的額外存儲空間的指定偏移位置。

該函式用於取代SetWindowLong函式。如果您想要您編寫的代碼兼容32位和64位版本的Windows系統,請使用SetWindowLongPtr函式。

基本介紹

  • 外文名:SetWindowLongPtr
  • 性質:改變指定視窗的屬性
  • 用途:取代SetWindowLong函式
  • hWnd視窗句柄,間接給出視窗所屬的類
函式原型,參數說明,返回值,

函式原型

LONG_PTRSetWindowLongPtr(
HWNDhWnd,
intnIndex,
LONG_PTRdwNewLong
);

參數說明

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:指定的替換值。

返回值

如果函式成功,則返回所指定的偏移量的前一個值。
如果函式失敗,則返回0。若想獲得更多的錯誤信息,請調用GetLastError函式。
注意:可以存在這樣一種情況,就是如果如果函式成功,且所返回的指定的偏移量的前一個值恰好為0,這時函式的返回值也為0。這中情況下,如果我們想知道SetWindowLongPtr()函式到底運行成功了沒有,可以通過如下的方法得知:
1、先調用SetLastError(0),清除最後的錯誤信息。
2、調用SetWindowLongPtr()。這時如果SetWindowLongPtr()函式的返回值為0。
3、再調用GetLastError(),獲取最後的錯誤信息。如果GetLastError()的返回值為非0的話,則SetWindowLongPtr()函式運行失敗。

相關詞條

熱門詞條

聯絡我們