|
Отображает указанный текст в указанной позиции с возможностями обрезания, окраски фона и посимвольного позиционирования.
Синтаксис
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 в противном случае.
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+ | Руководство пользователя
|
|
|