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
要检索的值的从零开始的偏移量。 有效值在 0 到额外窗口内存的字节数中,减去 4;例如,如果指定了 12 个或更多字节的额外内存,则值 8 将是第三个 32 位整数的索引。 若要检索任何其他值,请指定以下值之一。
价值 | 意义 |
---|---|
|
检索 |
|
检索应用程序实例的句柄。 |
|
检索父窗口的句柄(如果有)。 |
|
检索窗口的标识符。 |
|
检索 |
|
检索与窗口关联的用户数据。 此数据供创建窗口的应用程序使用。 其值最初为零。 |
|
检索窗口过程的地址,或表示窗口过程的地址的句柄。 必须使用 CallWindowProc 函数来调用窗口过程。 |
当 hWnd 参数标识对话框时,也可以使用以下值。
价值 | 意义 |
---|---|
|
检索对话框过程的地址,或表示对话框过程的地址的句柄。 必须使用 CallWindowProc 函数来调用对话框过程。 |
|
检索在对话框过程中处理的消息的返回值。 |
|
检索应用程序专用的额外信息,例如句柄或指针。 |
返回值
类型:LONG
如果函数成功,则返回值为请求的值。
如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError。
如果 SetWindowLong 之前尚未调用,GetWindowLong 为额外的窗口或类内存中的值返回零。
言论
通过在 与 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 中引入) |
另请参阅
概念
参考