GetWindowLongPtrA 函数 (winuser.h)

检索有关指定窗口的信息。 该函数还会在额外的窗口内存中检索指定偏移量处的值。

注意 若要编写与 32 位和 64 位版本的 Windows 兼容的代码,请使用 GetWindowLongPtr。 编译 32 位 Windows 时,GetWindowLongPtr 定义为对 GetWindowLong 函数的调用。
 

语法

LONG_PTR GetWindowLongPtrA(
  [in] HWND hWnd,
  [in] int  nIndex
);

参数

[in] hWnd

类型:HWND

窗口的句柄,间接地是窗口所属的类。

[in] nIndex

类型:int

要检索的值的从零开始的偏移量。 有效值介于零到额外窗口内存的字节数之间,减去 LONG_PTR的大小。 若要检索任何其他值,请指定以下值之一。

价值 意义
GWL_EXSTYLE
-20
检索扩展窗口样式。
GWLP_HINSTANCE
-6
检索应用程序实例的句柄。
GWLP_HWNDPARENT
-8
检索父窗口的句柄(如果有)。
GWLP_ID
-12
检索窗口的标识符。
GWL_STYLE
-16
检索窗口样式。
GWLP_USERDATA
-21
检索与窗口关联的用户数据。 此数据供创建窗口的应用程序使用。 其值最初为零。
GWLP_WNDPROC
-4
检索指向窗口过程的指针,或表示指向窗口过程的指针的句柄。 必须使用 CallWindowProc 函数来调用窗口过程。
 

hWnd 参数标识对话框时,也可以使用以下值。

价值 意义
DWLP_DLGPROC
DWLP_MSGRESULT + sizeof(LRESULT)
检索指向对话框过程的指针,或表示指向对话框过程的指针的句柄。 必须使用 CallWindowProc 函数来调用对话框过程。
DWLP_MSGRESULT
0
检索在对话框过程中处理的消息的返回值。
DWLP_USER
DWLP_DLGPROC + sizeof(DLGPROC)
检索应用程序专用的额外信息,例如句柄或指针。

返回值

类型:LONG_PTR

如果函数成功,则返回值为请求的值。

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError

如果以前未调用 SetWindowLongSetWindowLongPtrGetWindowLongPtr 将返回额外的窗口或类内存中的值零。

言论

通过在 RegisterClassEx 函数一起使用的 WNDCLASSEX 结构 成员中指定非零值来保留额外的窗口内存。

注意

winuser.h 标头将 GetWindowLongPtr 定义为一个别名,该别名根据 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

概念

参考

RegisterClassEx

SetParent

SetWindowLongPtr

WNDCLASSEX

窗口类