SetWindowLong

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

Довго SetWindowLong ( HWND  hWnd, / / ручка вікнаIntnIndex, / / встановити значення зсувуДОВГИЙdwNewLong / / нові значення);
 

Параметри

hWnd
Ручка вікна і, непрямо, клас, до якої належить вікна.
nIndex
Визначає COLUMN зсув на значення, щоб встановити. Припустимі значення знаходяться в діапазоні нуль через кількість байт пам'яті додаткові вікна, мінус 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 не набудуть сили, поки SetWindowPos функцію.

Якщо ви використовуєте SetWindowLong з GWL_WNDPROC індекс замінити процедура вікно, вікно процедури мають відповідати вказівки, зазначені в описі функції зворотного виклику WindowProc.

Якщо ви використовуєте SetWindowLong з DWL_MSGRESULT індекс встановити значення, що повертається повідомлення оброблено діалоговому процедури, ви повинні повернутися TRUE безпосередньо після цього. В іншому випадку, якщо ви виклику функції, що призводить до вашої процедури діалогове вікно, вікно повідомлення, вкладеному вікні повідомлення може перезаписувати значення ви встановити за допомогою DWL_MSGRESULT.

Виклик SetWindowLong з GWL_WNDPROC індекс створює підкласу клас вікна, що використовується для створення вікна. Застосунок може підкласу системи класу, але повинні не підкласу клас вікна створив інший процес. Функція SetWindowLong створює вікно підкласу змінюючи вікна процедури, пов'язані з конкретного вікна клас, викликаючи системи називати нову процедуру вікна замість того, щоб попередня. Програма має пройти будь-які повідомлення, що не обробляється нова процедура вікно до попереднього вікна процедури за номером CallWindowProc. Це дозволяє застосовувати для створення ланцюжка вікно процедур.

Заповідник додаткові вікна пам'яті, вказавши ненульове значення у WNDCLASSEX структури, які використовуються з функцією RegisterClassEx , член cbWndExtra.

Ви не повинні викликати SetWindowLong з GWL_HWNDPARENT індекс для зміни батьківського дочірнього вікна. Замість цього, використовуйте функції SetParent.

Windows CE: NIndex параметр має бути кратним 4 байт.

Невирівняний доступу не підтримується.

Не підтримуються такі значення параметра nIndex:

GWL_HINSTANCE

GWL_HWNDPARENT

GWL_USERDATA

Windows CE версії 2.0 а потім підтримують DWL_DLGPROC цінність в параметрі nIndex , але не робить Windows CE 1.0.

QuickInfo

nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Потрібна Версія 1.0 або пізнішу версію.
Заголовка:Оголошена в winuser.h.
Імпортувати бібліотеки:Використання user32.lib.
Юнікод:Реалізований у вигляді Юнікод і ANSI версії на Windows NT.

Дивіться також

Огляд вікна класів, функцій клас вікна, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, WNDCLASSEX

Index