Misst die Größe eines Strings
#include <GDIPlus.au3>
_GDIPlus_GraphicsMeasureString ( $hGraphics, $sString, $hFont, $tLayout, $hFormat )
$hGraphics | Handle zu einem Grafik-Objekt |
$sString | Zu zeichnende Strings |
$hFont | Handle zur verwendeten Schrift |
$tLayout | $tagGDIPRECTF-Struktur, welche der String begrenzt |
$hFormat | Handle zum verwendeten Stringformat |
Erfolg: | ein Array mit dem folgenden Format [0] - $tagGDIPRECTF-Struktur, die das Rechteck enthält, welches der String begrenzt [1] - Die Anzahl an Zeichen, die in das $tLayout-Rechteck passen [2] - Die Anzahl an Zeilen, die in das $tLayout-Rechteck passen |
Fehler: | Setzt das @error Flag auf ungleich null, das @extended Flag kann den GPSTATUS-Fehlercode ($GPID_ERR* siehe GDIPlusConstants.au3) enthalten. |
Mit dieser Funktion kann z. B. die Länge und Höhe eines Labels ermittelt werden.
Suche nach GdipMeasureString in der MSDN Bibliothek.
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
Example()
Func Example()
Local $hGui, $hGraphic, $hBrush, $hFormat, $hFamily, $hFont, $tLayout, $aInfo
Local $sString = "Hallo Welt"
; Erstellt eine GUI
$hGui = GUICreate("GDI+", 400, 300)
GUISetState(@SW_SHOW)
; Zeichnet einen String
_GDIPlus_Startup()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
$hBrush = _GDIPlus_BrushCreateSolid(0xFF00007F)
$hFormat = _GDIPlus_StringFormatCreate()
$hFamily = _GDIPlus_FontFamilyCreate("Arial")
$hFont = _GDIPlus_FontCreate($hFamily, 12, 2)
$tLayout = _GDIPlus_RectFCreate(140, 110, 0, 0)
$aInfo = _GDIPlus_GraphicsMeasureString($hGraphic, $sString, $hFont, $tLayout, $hFormat)
_GDIPlus_GraphicsDrawStringEx($hGraphic, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; Ressourcen freigeben
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
EndFunc ;==>Example