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


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

Примеры

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header 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

Классы окон