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。

如果以前未调用 SetWindowLong则 GetWindowLong 为额外窗口或类内存中的值返回零。

注解

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

示例

有关示例,请参阅 创建、枚举和调整子窗口的大小

注意

winuser.h 标头将 GetWindowLong 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 在 Windows 8) 中引入的 ext-ms-win-ntuser-windowclass-l1-1-0 (

另请参阅

CallWindowProc

概念性

GetWindowLongPtr

引用

RegisterClassEx

SetParent

SetWindowLong

WNDCLASS

窗口类