На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

SetWindowLong



The SetWindowLong function changes an attribute of the specified window. The function also sets a 32-bit (long) value at the specified offset into the extra window memory of a window.

LONG SetWindowLong(

HWND hWnd, // handle of window
int nIndex, // offset of value to set
LONG dwNewLong // new value
);


Parameters

hWnd

Identifies the window and, indirectly, the class to which the window belongs.

nIndex

Specifies the zero-based offset to the value to be set. Valid values are in the range zero through the number of bytes of extra window memory, minus 4; for example, if you specified 12 or more bytes of extra memory, a value of 8 would be an index to the third 32-bit integer. To set any other value, specify one of the following values:

Value Action
GWL_EXSTYLE Sets a new extended window style.
GWL_STYLE Sets a new window style.
GWL_WNDPROC Sets a new address for the window procedure.
GWL_HINSTANCE Sets a new application instance handle.
GWL_ID Sets a new identifier of the window.
GWL_USERDATA Sets the 32-bit value associated with the window. Each window has a corresponding 32-bit value intended for use by the application that created the window.


The following values are also available when the hWnd parameter identifies a dialog box:

Value Action
DWL_DLGPROC Sets the new address of the dialog box procedure.
DWL_MSGRESULT Sets the return value of a message processed in the dialog box procedure.
DWL_USER Sets new extra information that is private to the application, such as handles or pointers.


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.
If the previous value of the specified 32-bit integer is zero, and the function succeeds, the return value is zero, but the function does not clear the last error information. This makes it difficult to determine success or failure. To deal with this, you should clear the last error information by calling SetLastError(0) before calling SetWindowLong. Then, function failure will be indicated by a return value of zero and a GetLastError result that is nonzero.

Remarks

The SetWindowLong function fails if the window specified by the hWnd parameter does not belong to the same process as the calling thread.
If you use the SetWindowLong function and the GWL_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 SetWindowLong with the GWL_WNDPROC index creates a subclass of the window class used to create the window. An application should not subclass a window created by another process. The SetWindowLong function creates the window subclass by changing the window procedure associated with a particular window, causing Windows to call the new window procedure instead of the previous one. An application must pass any messages not processed by the new window procedure to the previous window procedure by calling CallWindowProc. This allows the application to create a chain of window procedures.

Reserve extra window memory by specifying a nonzero value in the cbWndExtra member of the WNDCLASS structure used with the RegisterClass function.
You must not call SetWindowLong with the GWL_HWNDPARENT index to change the parent of a child window. Instead, use the SetParent function.

See Also

CallWindowProc, GetWindowLong, GetWindowWord, RegisterClass, SetParent, SetWindowWord, WindowProc, WNDCLASS




Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

SetWindowLong



Функция SetWindowLong изменяет атрибут определенного окна. Функция также устанавливает 32- бит величины (долго (длиной)) в определенной компенсации в дополнительную память окна окна.

ДОЛГО (ДЛИНОЙ) SetWindowLong(

HWND hWnd, // РУЧКА окна int nIndex, // ценная компенсация, чтобы устанавливать ДОЛГО (ДЛИНОЙ) новую величину dwNewLong //
);


Параметры

hWnd

Идентифицирует окно и, косвенно, класс на котором окно принадлежит.

nIndex

Определяет базирующуюся нулевую компенсацию в величину, которая нужно быть установлена. Правильные величины - в нуле дипазона через количество байтов дополнительной памяти окна, минус 4; например, если Вы определили бы 12 или больше байтов дополнительной памяти, величина 8 должна быть индексом в третьем 32- битовом целом. Для того, чтобы устанавливать любую другую величину, определите одно из следующего величин:

Действие Величины
GWL_EXSTYLE Устанавливает новый расширенный стиль окна.
GWL_STYLE Устанавливает новый стиль окна.
GWL_WNDPROC Устанавливает новый адрес для процедуры окна.
GWL_HINSTANCE Устанавливает новую прикладную ручку примера.
GWL_ID Устанавливает новый идентификатор окна.
GWL_USERDATA Устанавливает 32- битовую величину связанную окном. Каждое окно предназначило соответствующую 32- битовую величину для использования приложением, которая создавала окно.


Следующие величины также доступны когда параметр hWnd идентифицирует диалоговый ящик:

Действие Величины
DWL_DLGPROC Устанавливает новый адрес диалоговой процедуры ящика.
DWL_MSGRESULT Устанавливает обратную величину сообщения обработанного в диалоговой процедуре ящика.
DWL_USER Устанавливает новую дополнительную информацию, которая частная в приложении, как например, ручки или указатели.


dwNewLong

Определяет величину замены.



Обратные Величины

Если функция добивается успеха, обратная величина является предшествующей величиной определенного 32- битового целого.
Если функция терпит неудачу, обратная величина нулевая. Для того, чтобы расширять информацию ошибки, вызовите GetLastError.
Если предшествующая величина определенного 32- битового целого является нулем, и функция добивается успеха, обратная величина является нулем, но функция не очищает последнюю информацию ошибки. Это делает это трудно, чтобы определять успех или неудачу. Чтобы иметься дело с этим, Вы должны очищать последнюю информацию ошибки вызывая SetLastError(0) перед разговором SetWindowLong. Затем, функциональная неудача будет указана обратной величиной нуля и результат GetLastError, что ненулевое.

Замечания

Функция SetWindowLong терпит неудачу если окно определялось бы параметром hWnd не принадлежит тому же процессу как разговор резьбы.
Если Вы используете функцию SetWindowLong и индекс GWL_WNDPROC, чтобы заменять процедуру окна, процедура окна должна соответствовать руководящим принципам определенным в описании функции возврата WindowProc.
Разговор SetWindowLong с индексом GWL_WNDPROC создает подкласс класса окна использованного, чтобы создавать окно. Приложение не должно подкласс окно созданное другим процессом. Функция SetWindowLong создает подкласс окна изменяя процедуру окна связывался конкретным окном, вызывающим Windows, чтобы вызывать новую процедуру окна вместо предшествующего. Приложение должно передать любые сообщения не обработанное новой процедурой окна в предшествующую процедуру окна вызывая CallWindowProc. Это позволяет приложение, чтобы создавать цепь процедур окна.

Зарезервируйте дополнительную память окна определяя ненулевую величину в элементе cbWndExtra структуры WNDCLASS использованной функцией RegisterClass.
Вы не должны вызывать SetWindowLong с индексом GWL_HWNDPARENT, чтобы изменять родителя окна ребенка. Взамен, используйте функцию SetParent.

Смотри Также

CallWindowProc, GetWindowLong, GetWindowWord, RegisterClass, SetParent, SetWindowWord, WindowProc, WNDCLASS




Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz