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


Функция GetWindowLongW (winuser.h)

Извлекает сведения об указанном окне. Функция также получает 32-разрядное значение (DWORD) по указанному смещению в дополнительную память окна.

примечание Если вы извлекаете указатель или дескриптор, эта функция заменена функцией GetWindowLongPtr. (Указатели и дескрипторы — это 32-разрядные 32-разрядные оси Windows и 64-разрядные устройства в 64-разрядной версии Windows.) Чтобы написать код, совместимый с 32-разрядными и 64-разрядными версиями Windows, используйте GetWindowLongPtr.

 

Синтаксис

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

Параметры

[in] hWnd

Тип: HWND

Дескриптор окна и, косвенно, класс, которому принадлежит окно.

[in] nIndex

Тип: int

Отсчитываемое от нуля смещение для извлекаемого значения. Допустимые значения находятся в диапазоне от нуля до количества байтов дополнительной памяти окна, минус четыре; Например, если вы указали 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 возвращает ноль значений в дополнительном окне или памяти класса.

Замечания

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

Примеры

Пример см. в разделе Создание, перечисление и изменение размера дочернихWindows.

Заметка

Заголовок winuser.h определяет GetWindowLong как псевдоним, который автоматически выбирает версию 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

концептуальные

GetWindowLongPtr

Справочник

RegisterClassEx

SetParent

SetWindowLong

WNDCLASS

классы окон