Функція SetWindowLong зміни атрибуту вказаної вікна. Функція також встановлює 32-розрядні (довгий) значення в указаний зсув в пам'яті додаткові вікна вікна.
Довго SetWindowLong ( HWND hWnd, / / ручка вікнаIntnIndex, / / встановити значення зсувуДОВГИЙdwNewLong / / нові значення);
| Значення | Дія |
|---|---|
| GWL_EXSTYLE | Встановлює новий розширений стиль вікна. |
| GWL_STYLE | Встановлює новий стиль вікна. |
| GWL_WNDPROC | Встановлює нової адреси для вікна процедури. |
| GWL_HINSTANCE | Встановлює новий дескриптор екземпляра застосунку. |
| GWL_ID | Встановлює новий ідентифікатор вікна. |
| GWL_USERDATA | Установка 32-бітні значення, пов'язані з вікна. Кожному вікну 32-бітні значення відповідного призначені для використання за програмою, яка створила вікна. |
Такі значення також доступні при hWnd параметр ідентифікує діалогове вікно:
| Значення | Дія |
|---|---|
| DWL_DLGPROC | Встановлює нової адреси діалоговому вікні порядок. |
| DWL_MSGRESULT | Задає значення, що повертається повідомлення обробляються в діалоговому вікні порядок. |
| DWL_USER | Встановлює нові додаткову інформацію, яка є приватним, на додаток, такі як ручки або вказівники. |
Якщо функція завершено успішно, значення, що повертається, є попереднє значення вказаного 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.
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