Функция _WinAPI_GetTextExtentPoint32

 ↑  ←  Описание функции


_WinAPI_GetTextExtentPoint32

Вычисляет ширину и высоту указанной строки

#include <WinAPI.au3>
_WinAPI_GetTextExtentPoint32($hDC, $sText)

Параметры

$hDC Дескриптор контекста устройства.
$sText Строка

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

Успех:Возвращает структуру $tagSIZE, в которой содержатся размеры строки
Ошибка:Устанавливает @error

См. также

$tagSIZE

См. также

Искать GetTextExtentPoint32 в библиотеке MSDN

Пример

#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    Local $hGUI = GUICreate("Определение ширины и высота текста.")
    GUISetState(@SW_SHOW, $hGUI)

    Local $sText = "Некоторый текст" ; Текст, ширину и высоту, которого необходимо определить
    Local $aStringDimension = GetStringDimensions($hGUI, $sText) ; Возвращает одномерный массив, в котором $aArray[0] = ширина, а $aArray[1] = высота.
    MsgBox(0, 'Определение ширины и высота текста.', 'строка: "' & $sText & '"' & @CRLF & _
            "Ширина: " & $aStringDimension[0] & @CRLF & _
            "Высота: " & $aStringDimension[1] & @CRLF)
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

Func GetStringDimensions($hWnd, $sText)
    Local $hDC = _WinAPI_GetDC($hWnd) ; Возвращает дескриптор контекста устройства указанного окна.
    Local $hFont = _SendMessage($hWnd, $WM_GETFONT) ; Возвращает дескриптор шрифта, используемого для создания текста.
    Local $hSelectObject = _WinAPI_SelectObject($hDC, $hFont) ; Выбирает объект в указанном контекст устройстве.
    Local $tSIZE = _WinAPI_GetTextExtentPoint32($hDC, $sText) ; Вычисляет ширину и высоту указанной строки.

    _WinAPI_SelectObject($hDC, $hSelectObject)
    _WinAPI_ReleaseDC($hWnd, $hDC) ; Освобождает контекст устройства
    Local $aReturn[2] = [DllStructGetData($tSIZE, 1), DllStructGetData($tSIZE, 2)] ; Объявляет массив с шириной и высотой строки.
    Return $aReturn
EndFunc   ;==>GetStringDimensions