C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Дебетовая карта Home Credit [CPS] RU

 1.27.1.47 Функция SetWindowLong / Окна… / Win32 API

1.27.1.47 Функция SetWindowLong

(УстановкаОкнаСДальнимСмещением)

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

Синтаксис

LONG SetWindowLong
(
HWND hWnd,		// дескриптор окна
int nIndex,		// значение смещения, которое устанавливается
LONG 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.

Размещение и совместимость SetWindowLong

Windows NT			Да 
Win95				Да 
Win32s				Да 
Импортируемая библиотека		user32.lib 
Заголовочный файл			winuser.h 
Unicode				WinNT 
Замечания по платформе		Не имеется

| |
Автор Владимир Соковиков.
[AD]





Дебетовая карта Home Credit [CPS] RU