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

ExtTextOut

- функция WinAPI
Функции WinAPI
Отображает указанный текст в указанной позиции с возможностями обрезания, окраски фона и посимвольного позиционирования.
Синтаксис
function ExtTextOut(
  hDC,
  XStart,
  YStart,
  Options,
  Rect,
  Text,
  Count,
  SgnInf
): Boolean;

Параметры
Параметр Тип Описание
hDC Number дескриптор контекста устройства
XStart Number x-координата начальной позиции
YStart Number y-координата начальной позиции
Options Enumset опции отображения текста (см. ниже)
Rect TRect прямоугольник (для отсечения текста и/или окраски фона) или null
Text String текст для отображения
Count Number количество отображаемых символов или -1 для отображения всего текста
SgnInf Array массив чисел, длиной, равной двойной длине отображаемого текста, состоящий из пар значений: ширина знакоместа для очередного символа текста и вертикальное смещение знакоместа относительно предыдущего. При использовании значения ETO_PDY в параметре Options этот массив используется для позиционирования символов текста. Это необязательный параметр, который также может иметь значение null

Параметр Options
Значение Описание
ETO_CLIPPED обрезать текст по указанному прямоугольнику
ETO_GLYPH_INDEX отобразить текст непосредственно средствами GDI, без анализа языковой принадлежности
ETO_IGNORELANGUAGE зарезервировано для внутреннего использования системой
ETO_NUMERICSLATIN отображать числа в общепринятом для Европы формате
ETO_NUMERICSLOCAL отображать числа в соответствии с локальными настройками компьютера
ETO_OPAQUE залить прямоугольник текущим цветом фона
ETO_PDY применить при отображении текста параметр SgnInf
ETO_RTLREADING отобразить текст справа налево, например текст на иврите
Возвращаемое значение
true в случае успеха или false в противном случае.
Пример (JS+)
var pns=new TPaintStruct();
var txt_Str="Текст выведен функцией WinAPI ExtTextOut";
var pos_Lst=new Array();
var sz=new TSize();

// Главная форма
frm=new TForm();
frm.Caption="JS+ - функция WinAPI ExtTextOut";
frm.Width =525;
frm.Height=375;
frm.WindowProc=new_WndProc;

frm.ShowModal();

// Оконная процедура главной формы
function new_WndProc(Sender,Msg,wParam,lParam)
{
  var hWnd=Sender.Handle,owp=Sender.OldWndProc;
  var fw=frm.ClientWidth,fh=frm.ClientHeight;

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

         GetTextExtentPoint32(hDC,str="W",1,sz);
         txt_h=sz.cy;
         for (i=j=txt_w=0,n=txt_Str.length*2;i<n;i+=2,j++) {
           GetTextExtentPoint32(hDC,txt_Str.charAt(j),1,sz);
           txt_w+=w=sz.cx; pos_Lst[i]=w; pos_Lst[m=i+1]=1;
           txt_h+=pos_Lst[m];
         }

         SetBkColor(hDC,0xD0E0E0);
         ExtTextOut(hDC,
           Math.round((fw-txt_w)/2),
           Math.round(fh/2),
           ETO_OPAQUE | ETO_PDY,
           Rect(10,10,fw-10,fh-10),
           txt_Str,-1,pos_Lst
         );

         EndPaint(hWnd,pns);
         return 0;

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

  return CallWindowProc(owp,hWnd,Msg,wParam,lParam);
}
Совместимость
Windows API
См. также
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/WinAPI/Function/ExtTextOut.htm
© 2024,