SetClassLong

SetClassLong функция заменяет указанное 32-разрядное значение (длинная) с заданным смещением в памяти высшего сорта или WNDCLASSEX структуру для класса, к которому принадлежит указанное окно.

() DWORD SetClassLong HWND  hWnd, / / обработать окнаintnIndex, / / индекс значения для измененияДЛИННЫЕdwNewLong / / новое значение);
 

Параметры

hWnd
Дескриптор окна и, косвенно, класс, к которому принадлежит окно.
nIndex
Задает 32-разрядное значение для замены. Чтобы установить 32-разрядного значения в памяти высшего сорта, укажите позитивный, с нуля смещение значения, которое необходимо задать. Допустимые значения находятся в диапазоне от нуля до количество байтов памяти, высшего сорта, четыре; например при указании 12 или более байтов памяти, высшего сорта, значение 8 бы индекс третьего 32-разрядное целое число. Для любого другого значения из структуры WNDCLASSEX , укажите одно из следующих значений:
Значение Действия
GCL_CBCLSEXTRA Устанавливает размер, в байтах, дополнительной памяти, связанной с классом. Установка этого значения не изменяет количество дополнительных уже выделенных байтов.
GCL_CBWNDEXTRA Устанавливает размер, в байтах, дополнительное окно памяти, связанной с каждым окном в классе. Установка этого значения не изменить количество дополнительных уже выделенных байтов. Сведения о том, как получить доступ к этой памяти содержатся в разделе SetWindowLong.
GCL_HBRBACKGROUND Заменяет ручку фон кисти, связанные с классом.
GCL_HCURSOR Заменяет дескриптор курсора, связанные с классом.
GCL_HICON Заменяет дескриптор значка, связанного с классом.
GCL_HMODULE Заменяет дескриптор модуля, зарегистрированного класса.
GCL_MENUNAME Заменяет адрес имя строки меню. Строка идентифицирует ресурс меню, связанные с классом.
GCL_STYLE Заменяет битов стиля класса окна.
GCL_WNDPROC Заменяет адрес процедуры окна, связанный с классом.

dwNewLong
Определяет значение, замена.

Возвращаемые значения

Если функция выполнена успешно, возвращаемое значение является предыдущее значение заданного 32-разрядного целого числа. Если значение не было задано ранее, возвращаемое значение равно нулю.

Если вызов функции был неуспешен, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Примечания

Если вы используете функцию SetClassLong и GCL_WNDPROC индекс для замены процедуру окна, процедура окна должны соответствовать руководящим принципам, указанных в описании функции обратного вызова WindowProc.

Вызов SetClassLong с GCL_WNDPROC индексом создает подкласс класса window, который затрагивает все окна, впоследствии создан с классом. Приложение может подкласс класса system, но следует не подкласс класса окна, созданные другим процессом.

Резервировать память высшего сорта, указав ненулевое значение в cbClsExtra член WNDCLASSEX структуры, используется с функцией RegisterClassEx.

Используйте функцию SetClassLong с осторожностью. Например можно изменить цвет фона для класса с помощью SetClassLong, но это изменение не перерисовываться сразу все окна, принадлежащие к классу.

Windows CE: Параметр nIndex — байта смещение, но должна быть кратна 4 байта. Не выровненной доступ не поддерживается.

Ни один из стандартных значений GCL_ * поддерживаются в параметре nIndex , с одним исключением. Если вы являетесь таргетинга устройство поддерживает курсор мыши, можно использовать значение GCL_HCURSOR в параметре nIndex.

Примечание Версий Windows CE, которые поддерживают курсоры мыши включают в себя компоненты Iconcurs и Mcursor, а не значок и курсор компонентов.

QuickInfo

nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Используйте user32.lib.
Юникод:В версии Юникода и ANSI в Windows NT.

Родственные слова

Обзор классов окна WindowProc функции класса окна, GetClassLong, RegisterClassEx, SetWindowLong, WNDCLASSEX