|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
SetClassLong
The SetClassLong function replaces the specified 32-bit (long) value at the specified offset into the extra class memory or the WNDCLASS structure for the class to which the specified window belongs.
DWORD SetClassLong(
HWND hWnd, // handle of window int nIndex, // index of value to change LONG dwNewLong // new value );
Parameters
hWnd
Identifies the window and, indirectly, the class to which the window belongs.
nIndex
Specifies the 32-bit value to replace. To set a 32-bit value in the extra class memory, specify the positive, zero-based byte offset of the value to be set. Valid values are in the range zero through the number of bytes of extra class memory, minus four; for example, if you specified 12 or more bytes of extra class memory, a value of 8 would be an index to the third 32-bit integer. To set any other value from the WNDCLASS structure, specify one of the following values:
Value Action GCL_CBCLSEXTRA Sets the size, in bytes, of the extra memory associated with the class. Setting this value does not change the number of extra bytes already allocated. GCL_CBWNDEXTRA Sets the size, in bytes, of the extra window memory associated with each window in the class. Setting this value does not change the number of extra bytes already allocated. For information on how to access this memory, see SetWindowLong and SetWindowWord. GCL_HBRBACKGROUND Replaces the handle of the background brush associated with the class. GCL_HCURSOR Replaces the handle of the cursor associated with the class. GCL_HICON Replaces the handle of the icon associated with the class. GCL_HMODULE Replaces the handle of the module that registered the class. GCL_MENUNAME Replaces the address of the menu name string. The string identifies the menu resource associated with the class. GCL_STYLE Replaces the window-class style bits. GCL_WNDPROC Replaces the address of the window procedure associated with the class.
dwNewLong
Specifies the replacement value.
Return Values
If the function succeeds, the return value is the previous value of the specified 32-bit integer. If the function fails, the return value is zero. To get extended error information, call GetLastError.
Remarks
If you use the SetClassLong function and the GCL_WNDPROC index to replace the window procedure, the window procedure must conform to the guidelines specified in the description of the WindowProc callback function. Calling SetClassLong with the GCL_WNDPROC index creates a subclass of the window class that affects all windows subsequently created with the class. An application should not subclass a window created by another process. Reserve extra class memory by specifying a nonzero value in the cbClsExtra member of the WNDCLASS structure used with the RegisterClass function.
Use the SetClassLong function with care. For example, it is possible to change the background color for a class by using SetClassLong, but this change does not immediately repaint all windows belonging to the class.
See Also
GetClassLong, GetClassWord, RegisterClass, SetClassWord, SetWindowLong, SetWindowWord, WindowProc, WNDCLASS
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
SetClassLong
Функция SetClassLong заменяет определенный 32- бит величины (долго (длиной)) в определенной компенсации в дополнительную память класса или структура WNDCLASS для класса на котором определенное окно принадлежит.
DWORD SetClassLong(
HWND hWnd, // РУЧКА окна int nIndex, // ценный индекс, чтобы изменять ДОЛГО (ДЛИНОЙ) новую величину dwNewLong // );
Параметры
hWnd
Идентифицирует окно и, косвенно, класс на котором окно принадлежит.
nIndex
Определяет 32- битовую величину, чтобы заменяться. Для того, чтобы устанавливать 32- битовую величину в дополнительной памяти класса, определите положительную, базирующуюся нулевую байтовую компенсацию величины, которая нужно быть установлена. Правильные величины - в нуле дипазона через количество байтов дополнительной памяти класса, минус четыре; например, если Вы определили бы 12 или больше байтов дополнительной памяти класса, величина 8 должна быть индексом в третьем 32- битовом целом. Для того, чтобы устанавливать любую другую величину из структуры WNDCLASS, определите одно из следующего величин:
Действие Величины GCL_CBCLSEXTRA Устанавливает размер, в байтах, дополнительной памяти связанной классом. Установка этой величины не изменяет количество уже размещенных дополнительных байтов. GCL_CBWNDEXTRA Устанавливает размер, в байтах, дополнительной памяти окна связанной каждым окном в класс. Установка этой величины не изменяет количество уже размещенных дополнительных байтов. Для информации о том как иметь доступ к этой памяти, смотри SetWindowLong и SetWindowWord. GCL_HBRBACKGROUND Заменяет ручку щетки фона связанного классом. GCL_HCURSOR Заменяет ручку курсора связанного классом. GCL_HICON Заменяет ручку иконки связанной классом. GCL_HMODULE Заменяет ручку модуля, который регистрировал класс. GCL_MENUNAME Заменяет адрес строки имени меню. Строка идентифицирует ресурс меню связанный классом. GCL_STYLE Заменяет окно-класс битов стиля. GCL_WNDPROC Заменяет адрес процедуры окна связанного классом.
dwNewLong
Определяет величину замены.
Обратные Величины
Если функция добивается успеха, обратная величина является предшествующей величиной определенного 32- битового целого. Если функция терпит неудачу, обратная величина нулевая. Для того, чтобы расширять информацию ошибки, назовите GetLastError.
Замечания
Если Вы используете функцию SetClassLong и индекс GCL_WNDPROC, чтобы заменять процедуру окна, процедура окна должна соответствовать руководящим принципам определенным в описании функции возврата WindowProc. Вызов SetClassLong с индексом GCL_WNDPROC создает подкласс класса окна на которое влияет все окно впоследствии создавался классом. Приложение не должно подкласс окно созданное другим процессом. Зарезервируйте дополнительную память класса определяя ненулевую величину в элементе cbClsExtra структуры WNDCLASS использованной функцией RegisterClass.
Используйте функцию SetClassLong осторожно. Например, возможно должно изменять цвет фона для класса используя SetClassLong, но это изменение немедленно не перекрашивает все окно, принадлежащее классу.
Смотри Также
GetClassLong, GetClassWord, RegisterClass, SetClassWord, SetWindowLong, SetWindowWord, WindowProc, WNDCLASS
|
|
|
|
| |