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

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки
Переведено 17.12.2004 16:31 ©Copyright V. Sokovikov
Hosted by uCoz