共用方式為


GetWindowLongA 函式 (winuser.h)

擷取指定視窗的相關信息。 函式也會擷取位於指定位移的 32 位 (DWORD) 值到額外的視窗記憶體中。

注意 如果您要擷取指標或句柄,GetWindowLongPtr 函式已取代此函式。 (指標和控點在32位 Windows 上為32位,在64位 Windows 上為64位。若要撰寫與 32 位和 64 位版本的 Windows 相容的程式代碼,請使用 GetWindowLongPtr

 

語法

LONG GetWindowLongA(
  [in] HWND hWnd,
  [in] int  nIndex
);

參數

[in] hWnd

類型:HWND

視窗的句柄,而且間接地是窗口所屬的類別。

[in] nIndex

類型:int

要擷取之值的以零起始位移。 有效值為零到額外視窗記憶體的位元元組數目,減去4個;例如,如果您指定了12個以上的額外記憶體位元組,則值為8會是第三個32位整數的索引。 若要擷取任何其他值,請指定下列其中一個值。

價值 意義
GWL_EXSTYLE
-20
擷取 延伸窗口樣式。
GWL_HINSTANCE
-6
擷取應用程式實例的句柄。
GWL_HWNDPARENT
-8
擷取父視窗的句柄,如果有的話。
GWL_ID
-12
擷取視窗的標識碼。
GWL_STYLE
-16
擷取 視窗樣式。
GWL_USERDATA
-21
擷取與視窗相關聯的用戶數據。 此資料供建立視窗的應用程式使用。 其值一開始為零。
GWL_WNDPROC
-4
擷取視窗程序的位址,或代表視窗程式位址的句柄。 您必須使用 CallWindowProc 函式來呼叫視窗程式。
 

hWnd 參數識別對話框時,也可以使用下列值。

價值 意義
DWL_DLGPROC
DWLP_MSGRESULT + sizeof(LRESULT)
擷取對話框程式的位址,或代表對話框程式位址的句柄。 您必須使用 CallWindowProc 函式來呼叫對話框程式。
DWL_MSGRESULT
0
擷取對話框程序中處理之訊息的傳回值。
DWL_USER
DWLP_DLGPROC + sizeof(DLGPROC)
擷取應用程式的額外資訊,例如句柄或指標。

傳回值

類型:LONG

如果函式成功,傳回值就是要求的值。

如果函式失敗,傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

如果先前尚未呼叫 SetWindowLongGetWindowLong 會針對額外視窗或類別記憶體中的值傳回零。

言論

在搭配 RegisterClassEx 函式使用的 WNDCLASSEX 結構成員中指定非零值,以保留額外的視窗記憶體。

例子

如需範例,請參閱 建立、列舉和重設大小子 Windows

注意

winuser.h 標頭會將 GetWindowLong 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winuser.h (包括 Windows.h)
連結庫 User32.lib
DLL User32.dll
API 集 ext-ms-win-ntuser-windowclass-l1-1-0 (在 Windows 8 中引進)

另請參閱

CallWindowProc

概念

GetWindowLongPtr

參考

RegisterClassEx

SetParent

SetWindowLong

WNDCLASS

視窗類別