Функция GetWindowLong
Функция
GetWindowLong извлекает информацию об определяемом окне. Функция также извлекает и 32-разрядное (long) значение при заданном смещении из дополнительной памяти для окна.Если Вы возвращаете указатель или дескриптор, эта функция заменяется функцией GetWindowLongPtr. (Указатели и дескрипторы - это 32 бита в 32-разрядном Microsoft ® Windows ® и 64 бита на 64-разрядном Windows.) Чтобы написать код, который является совместимым и с 32-разрядными и с 64-разрядными версиями Windows, используйте функцию GetWindowLongPtr.
Синтаксис
LONG GetWindowLong( HWND hWnd, int nIndex ); |
Параметры
hWnd
[in] Дескриптор окна и, косвенно, класс которому окно принадлежит.nIndex
[in] Определяет отсчитываемое от нуля извлекаемое значение смещения. Допустимые значения параметра находятся в диапазоне от нуля до числа байтов дополнительной памяти для окна, минус четыре; например, если бы вы определили 12 или большее количество байтов дополнительной памяти, значение 8 будет индексом к третьему 32-разрядному целому числу. Чтобы извлечь любое другое значение, определите одно из нижеследующих значений:Значение | Предназначение |
GWL_EXSTYLE | Извлекает данные о расширенном стиле окна. Дополнительную информацию, см. в описании функции CreateWindowEx. |
GWL_STYLE | Извлекает данные о стиле окна. |
GWL_WNDPROC |
Извлекает адрес оконной процедуры или дескриптор, обозначающий адрес оконной процедуры. Вы должны использовать функцию CallWindowProc, чтобы вызвать оконную процедуру. |
GWL_HINSTANCE | Извлекает дескриптор экземпляра приложения. |
GWL_HWNDPARENT | Извлекает дескриптор родительского окна, если таковое существует. |
GWL_ID | Извлекает идентификатор окна. |
GWL_USERDATA | Извлекает пользовательские данные, связанные с окном. Эти данные предназначаются для использования приложением, которое создавало окно. Его значение первоначально является нулевым. |
Следующие значения также доступны, когда параметр hWnd идентифицирует диалоговое окно.
Значение | Предназначение |
DWL_DLGPROC | Извлекает адрес процедуры диалогового окна, или дескриптор, обозначающий адрес процедуры диалогового окна. Вы должны использовать функцию CallWindowProc, чтобы вызвать процедуру диалогового окна. |
DWL_MSGRESULT |
Извлекает величину возвращаемого значения сообщения, обработанного в процедуре диалогового окна. |
DWL_USER | Извлекает дополнительную информацию о конкретной прикладной программе, типа дескрипторов или указателей. |
Возвращаемое значение
Если функция завершается успешно, возвращаемое значение - затребованная 32-разрядная величина.
Если функция завершается ошибкой, возвращаемое значение равняется нулю. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError.
Если перед этим функция SetWindowLong не вызвалась, GetWindowLong возвращает нуль для значений дополнительной памяти окна или класса.
Замечания
Резервируйте дополнительную память окна, определяя ненулевое значение в члене cbWndExtra структуры WNDCLASSEX, используемой с функцией RegisterClassEx.
Функция GetWindowLongW поддерживается Microsoft Layer for Unicode (MSLU). Функция GetWindowLongA также поддерживается, чтобы обеспечить более совместимый режим работы со всеми операционными системами Windows. Чтобы использовать эти версии, Вы должны добавить некоторые файлы в ваше приложение, как это изложено в Microsoft Layer for Unicode для систем Windows 95/98/Me.
Пример
Пример, см. в статье Создание, перечисление и установка размеров дочерних окон.
Смотри также
Обзор Классы окна, Функции, используемые классами окна, CallWindowProc, GetWindowLongPtr, RegisterClassEx, SetParent, SetWindowLong, WNDCLASSEX
Размещение и совместимость GetWindowLong |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 3.1 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Используемая библиотека |
User32.lib |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |