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

TPaintStruct

- структура WinAPI
Типы данных WinAPI
Содержит информацию области окна приложения, подлежащей перерисовке при обработке сообщения Windows API WM_PAINT.
Объявление переменной

Value=new TPaintStruct();

Собственные свойства
Название Тип Описание
hdc Number дескриптор контекста устройства
fErase Boolean признак необходимости перерисовки фона окна
rcPaint TRect прямоугольник области окна, требующий перерисовки
fRestore Boolean зарезирвировано для внутреннего использования системой
fIncUpdate Boolean зарезирвировано для внутреннего использования системой
rgbReserved String зарезирвировано для внутреннего использования системой
Пример (JS+)
// Структура PaintStruct для функций BeginPaint/EndPaint
var pns=new TPaintStruct();

// Форма без заголовка
frm=new TForm();
frm.BorderStyle=bsNone;
frm.Width =w1=GetSystemMetrics(SM_CXSCREEN)/3;
frm.Height=h1=GetSystemMetrics(SM_CYSCREEN)/3;
frm.Cursor=crHandPoint;
frm.OnMouseDown=frm_MouseDown;
frm.WindowProc=new_WndProc;

// Кисти
br1=CreateSolidBrush(0x005080.toTColor());
br2=CreateSolidBrush(0x004070.toTColor());

// Кнопка
btn=new TButton(frm);
btn.Caption="Закрыть";
btn.Left=frm.ClientWidth -btn.Width -20;
btn.Top =frm.ClientHeight-btn.Height-20;
btn.Hint="Закрыть окно";
btn.ShowHint=true;
btn.OnClick=btn_Click;

frm.ShowModal();

// Обработчик события OnClick кнопки "Закрыть"
function btn_Click(btn)
{
  frm.Close();
}

// Оконная процедура главной формы
function new_WndProc(Sender,Msg,wParam,lParam)
{
  var w2=w1-20,h2=h1-20;
  var hWnd=Sender.Handle;
  var owp=Sender.OldWndProc;

  switch (Msg) {
    case WM_PAINT:
         hDC=BeginPaint(hWnd,pns);

         // Прямоугольник с закругленными углами
         rgn1=CreateRoundRectRgn(0,0,w1,h1,40,40);

         // Эллипс внутри прямоугольника
         rgn2=CreateEllipticRgn(20,20,w2,h2);
         CombineRgn(rgn1,rgn1,rgn2,RGN_DIFF);

         FillRgn(hDC,rgn1,br1);
         FrameRgn(hDC,rgn1,br2,1,1);

         DeleteObject(rgn2);
         DeleteObject(rgn1);

         EndPaint(hWnd,pns);
         return 0;

    case WM_DESTROY:
         DeleteObject(br1);
         DeleteObject(br2);

         SetWindowLong(hWnd,GWL_WNDPROC,owp);
  }

  return CallWindowProc(owp,hWnd,Msg,wParam,lParam);
}

// Обработчик события OnMouseDown главной формы
function frm_MouseDown(frm,Button,Shift,X,Y)
{
  var crs=frm.Cursor;

  if (Button!=mbLeft)
    return;

  ReleaseCapture();
  frm.Cursor=crDrag;

  // Войти в процесс перемещения формы мышью
  frm.Perform(WM_SYSCOMMAND,0xF009,0);

  frm.Cursor=crs;
}
Совместимость
Windows API
См. также
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/WinAPI/DataType/TPaintStruct.htm
© 2024,