|
|
Возвращает размеры указанной текстовой строки или ее части для указанного контекста устройства.
Синтаксис
function GetTextExtentPoint32(
| hDC, | Text, | Count, | Size
| ): Boolean;
|
Параметры
|
Параметр
| Тип
| Описание
|
hDC
| Number
| дескриптор контекста устройства
|
Text
| String
| текстовая строка
|
Count
| Number
| количество учитываемых символов или -1 для учета всего текста
|
Size
| TSize
| возвращаемые размеры указанной строки
|
|
Возвращаемое значение
true в случае успеха или false в противном случае.
Члены возвращаемого параметра Size Size.cx и Size.cy содержат ширину и высоту указанной строки.
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 GetTextExtentPoint32"; 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+ | Руководство пользователя
|
|
|
|
|
|