JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

SetWindowLong

- функция WinAPI
Функции WinAPI
Устанавливает указанный атрибут указанного окна.
Синтаксис
function SetWindowLong(
  hWnd,
  Index,
  Value
): Number;

Параметры
Параметр Тип Описание
hWnd Number дескриптор окна
Index Enumset устанавливаемый атрибут (см. ниже)
Value Number значение атрибута

Параметр Index
Значение Описание
GWL_STYLE устанавливает стиль окна
GWL_EXSTYLE устанавливает расширенный стиль окна
GWL_HINSTANCE устанавливает дескриптор экземпляра прикладной программы
GWL_ID устанавливает идентификатор окна
GWL_WNDPROC устанавливает адрес оконной процедуры
GWL_USERDATA устанавливает 32-разрядное значение, связанное с окном, и предназначенное для использования приложением.
Для параметра hWnd, представляющего диалоговое окно
DWL_DLGPROC устанавливает адрес процедуры диалогового окна
DWL_MSGRESULT устанавливает возвращаемое значение сообщения, обработанного в процедуре диалогового окна.
DWL_USER устанавливает 32-разрядное значение, связанное с диалоговым окном, и предназначенное для использования приложением.
Возвращаемое значение
Предыдущее значение указанного атрибута в случае успеха или 0 в противном случае.
Пример (JS+)
var tab=15,old_WndProc;
var pns=new TPaintStruct();

// Главная форма
frm=new TForm();
frm.Caption="JS+ - функция WinAPI SetWindowLong";
frm.Width =450;
frm.Height=300;

old_WndProc=GetWindowLong(frm.Handle,GWL_WNDPROC);
frm.WindowProc=new_WndProc;

frm.ShowModal();

// Оконная процедура главной формы
function new_WndProc(Sender,Msg,wParam,lParam)
{
  var hDC;
  var hWnd=Sender.Handle;
  var out_str="Текст выведен функцией WinAPI TextOut";

  switch (Msg) {
    case WM_PAINT : hDC=GetDC(hWnd);
                     BeginPaint(hWnd,pns);
                     SetBkColor(hDC,clLtGray.toRGB());
                     TextOut(hDC,tab,tab,out_str,out_str.length);
                     EndPaint(hWnd,pns);
                     ReleaseDC(hWnd,hDC);
                     return 0;

    case WM_DESTROY: SetWindowLong(hWnd,GWL_WNDPROC,old_WndProc);
  }

  return CallWindowProc(old_WndProc,hWnd,Msg,wParam,lParam);
}
Примечание
Вместо функции SetWindowLong JS+ использует более современную функцию SetWindowLongPtr для совместимости как с 32-разрядными, так и с 64-разрядными версиями Microsoft Windows.
Совместимость
Windows API
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/WinAPI/Function/SetWindowLong.htm
© 2024,