文字列のサイズを測ります。
#Include <GDIPlus.au3>
_GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
パラメータ
$hGraphics | Graphicsオブジェクトのハンドル |
$sString | 描画される文字列 |
$hFont | 文字列の描画に使用するフォントのハンドル |
$tLayout | 文字列に外接する$tagGDIPRECTF構造体 |
$hFormat | 文字列の描画に使用される文字列フォーマットのハンドル |
返し値
成功: | 次のフォーマットの配列 |
[0] - 文字列の外接長方形を受け取った$tagGDIPRECTF構造体 | |
[1] - レイアウト長方形に実際におさまっている文字の数 | |
[2] - Tレイアウト長方形におさまっている行の数 | |
失敗: | 0 |
注意
なし。
関連
$tagGDIPRECTF
こちらも参照
MSDNライブラリでGdipMeasureStringを検索して下さい。
例
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
Opt('MustDeclareVars', 1)
_Main()
Func _Main()
Local $hGUI, $hGraphic, $hBrush, $hFormat, $hFamily, $hFont, $tLayout, $aInfo
Local $sString = "Hello world"
; GUI作成
$hGUI = GUICreate("GDI+", 400, 300)
GUISetState()
; 文字列を描画
_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)
; ユーザーが終了するまでループ
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
; リソースを破棄
_GDIPlus_FontDispose ($hFont)
_GDIPlus_FontFamilyDispose ($hFamily)
_GDIPlus_StringFormatDispose ($hFormat)
_GDIPlus_BrushDispose ($hBrush)
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_Shutdown ()
EndFunc ;==>_Main