PureBasic

VectorTextWidth()

Синтаксис

Result.d = VectorTextWidth(Text$ [, Flags])

Описание


Измеряет ширину данного текста при использовании текущего шрифта Векторной графики.

Параметры

Text$ Текст (одна строка), ширину которого требуется измерить.
Flags (дополн.) Может быть комбинация следующих значений:
  #PB_VectorText_Default: Вернуть логическую ограничительную рамку ограничивающую текст.
  #PB_VectorText_Visible: Вернуть видимую ограничительную рамку ограничивающую текст.
  #PB_VectorText_Offset : Вернуть смещение ограничительной рамки из текущей позиции, а не ширины.

Возвращаемое значение

Возвращает ширину указанного текста в единицах измерения устройства (поверхности) вывода Векторной графики.

Комментарии

Размеры выводимого текста могут быть определены в терминах двух ограничивающих рамок:

"Логическая ограничительная рамка" символа или текста определяет пространство, которое курсор должен считать как часть строки, чтобы правильно выводить строки текста рядом друг с другом (не впритык). Однако некоторые символы могут выходить за пределы этой рамки (например, в случае шрифтов cursive или serif). Логическая ограничительная рамка представляет интерес в определении места, где выводить текст. На примере ниже, она обозначена синим пунктиром.

"Видимая ограничительная рамка" символа или текста определяет область, в которой текст действительно нарисован. Эта область обычно больше, чем логическая ограничительная рамка. Видимые размеры текста можно получить, указав флаг #PB_VectorText_Visible. Видимые размеры текста могут быть со смещением по отношению к логическим. Это смещение можно рассчитать, указав флаг #PB_VectorText_Offset. На примере ниже, она обозначена красным пунктиром.

В следующем примере показан пример текста с логической ограничительной рамкой синего цвета, видимой ограничительной рамкой красного цвета и расположение базовой линии зеленого цвета (она описана в VectorTextHeight()). Начало текста - в верхнем левом углу логической ограничительной рамки (синего цвета).

Пример

If OpenWindow(0, 0, 0, 500, 250, "VectorDrawing", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    CanvasGadget(0, 0, 0, 500, 250)
    LoadFont(0, "Monotype Corsiva", 20, #PB_Font_Italic)

    If StartVectorDrawing(CanvasVectorOutput(0))

        VectorFont(FontID(0), 125)
        Text$ = "Sample"

        ; Выводим текст
        MovePathCursor(25, 25)
        DrawVectorText(Text$)

        ; Выводим логическую ограничивающую рамку
        AddPathBox(25, 25, VectorTextWidth(Text$), VectorTextHeight(Text$))
        VectorSourceColor(RGBA(0, 0, 255, 255))
        DashPath(2, 10)

        ; Выводим видимую ограничивающую рамку
        AddPathBox(25 + VectorTextWidth(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset),
                  25 + VectorTextHeight(Text$, #PB_VectorText_Visible|#PB_VectorText_Offset),
                  VectorTextWidth(Text$, #PB_VectorText_Visible),
                  VectorTextHeight(Text$, #PB_VectorText_Visible))
        VectorSourceColor(RGBA(255, 0, 0, 255))
        DashPath(2, 10)

        ; Выводим базовую линию
        MovePathCursor(25, 25 + VectorTextHeight(Text$, #PB_VectorText_Baseline))
        AddPathLine(VectorTextWidth(Text$), 0, #PB_Path_Relative)
        VectorSourceColor(RGBA(0, 255, 0, 255))
        DashPath(2, 10)

        StopVectorDrawing()
    EndIf

    Repeat
        Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
EndIf

См. также

VectorTextHeight(), DrawVectorText(), DrawVectorParagraph(), VectorParagraphHeight(), VectorFont()

Поддерживаемые OS

Все

<- VectorTextHeight() - Оглавление VectorDrawing - VectorUnit()->