Поделиться через


Функция 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.

Если SetWindowLong или SetWindowLongPtr не был вызван ранее, GetWindowLongPtr возвращает ноль значений в дополнительном окне или памяти класса.

Замечания

Зарезервируйте дополнительную память окна, указав ненулевое значение в cbWndExtraчлен структуры WNDCLASSEX, используемой с функцией RegisterClassEx.

Заметка

Заголовок winuser.h определяет GetWindowLongPtr как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер 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

классы окон