Функция SetClassLong замещает указанное 32-битное значение в указанном смещении в дополнительной памяти класса или в структуре WNDCLASS для указанного окна.
DWORD SetClassLong(
HWND hWnd, // дескриптор окна
int nIndex, // индекс изменяемого значения
LONG dwNewLong // новое значение
);
Параметры:
hWnd |
Определяет окно, для которого устанавливается информация. |
nIndex |
Определяет замещаемое 32-битное значение. Для установки 32-битного значения в дополнительной памяти класса, укажите позицию, вернее смещение этого значения. Для замещения любого другого значения из структуры WNDCLASS, укажите одно из следующих значений:
Значение: |
Действие: |
GCL_CBCLSEXTRA |
Установить размер, в байтах, дополнительной памяти, которая ассоциируется с классом. |
GCL_CBWNDEXTRA |
Установить размер, в байтах, дополнительной памяти, которая ассоциируется с каждым окном в классе. Чтобы узнать, как получить доступ этой памяти, смотрите описание функций GetWindowLong и GetWindowWord. |
GCL_HBRBACKGROUND |
Установить дескриптор кисти фона, которая ассоциируется с классом. |
GCL_HCURSOR |
Установить дескриптор курсора, который ассоциируется с классом. |
GCL_HICON |
Установить дескриптор иконки, которая ассоциируется с классом. |
GCL_HICONSM |
Установить дескриптор маленькой иконки, которая ассоциируется с классом. |
GCL_HMODULE |
Установить дескриптор модуля, который зарегестрировал класс. |
GCL_MENUNAME |
Установить адрес строки с именем меню. Эта строка определяет ресурс меню, который ассоциируется с классом. |
GCL_STYLE |
Установить биты стиля оконного класса. |
GCL_WNDPROC |
Установить адрес оконной процедуры, которая ассоциируется с классом. |
|
Возвращаемые значения:
При успешном завершении, функция возвращает предыдущее 32-битное значение. При ошибке возвращается ноль. Для получения дополнительной информации об ошибке, вызовите GetLastError.
Замечания:
Если вы используете функцию SetClassLong и индекс GCL_WNDPROC для замещения оконной процедуры, эта процедура должна соответствовать описанию функции обратного вызова WindowProc. Вызывая SetClassLong с индексом GCL_WNDPROC, создается подкласс оконного класса, который воздействует на все окна, впоследствии созданных с классом. Приложение может не подклассировать окна, созднные другим процессом. Используйте функцию SetClassLong уверенно. Например, если вы изменяете цвет вона для класса, то это изменение не перекрасит немедленно все окна, которые относятся к классу.
Смотрите также:
|