Function Reference

_WinAPI_CreateFont

指定された特性で論理フォントを作成します。

#Include <WinAPI.au3>
_WinAPI_CreateFont($nHeight, $nWidth[, $nEscape = 0 [, $nOrientn = 0 [, $fnWeight = $FW_NORMAL [, $bItalic = False[, $bUnderline = False [, $bStrikeout = False [, $nCharset = $DEFAULT_CHARSET [, $nOutputPrec = $OUT_DEFAULT_PRECIS [, $nClipPrec = $CLIP_DEFAULT_PRECIS [, $nQuality = $DEFAULT_QUALITY [, $nPitch = 0 [, $szFace = 'Arial']]]]]]]]]]]])

 

パラメータ

$nHeight フォントの高さ
$nWidth 文字の平均幅
$nEscape [オプション]文字送りの角度
$nOrientn [オプション]ベースライン方向の角度
$fnWeight [オプション]フォントの太さ。簡単のために次の値が定義されています:
$FW_DONTCARE - 0
$FW_THIN - 100
$FW_EXTRALIGHT - 200
$FW_LIGHT - 300
$FW_NORMAL - 400
$FW_MEDIUM - 500
$FW_SEMIBOLD - 600
$FW_BOLD - 700
$FW_EXTRABOLD - 800
$FW_HEAVY - 900
$bItalic [オプション]イタリック体属性オプション
$bUnderline [オプション]下線属性オプション
$bStrikeout [オプション]取り消し線属性オプション
$nCharset [オプション]文字セットを指定します。次の値が定義済みです:
$ANSI_CHARSET - 0
$BALTIC_CHARSET - 186
$CHINESEBIG5_CHARSET - 136
$DEFAULT_CHARSET - 1
$EASTEUROPE_CHARSET - 238
$GB2312_CHARSET - 134
$GREEK_CHARSET - 161
$HANGEUL_CHARSET - 129
$MAC_CHARSET - 77
$OEM_CHARSET - 255
$RUSSIAN_CHARSET - 204
$SHIFTJIS_CHARSET - 128
$SYMBOL_CHARSET - 2
$TURKISH_CHARSET - 162
$VIETNAMESE_CHARSET - 163
$nOutputPrec [オプション]出力精度を指定します。次の値のいずれかです:
$OUT_CHARACTER_PRECIS - 使用されません
$OUT_DEFAULT_PRECIS - デフォルトのフォントマッパー処理を指定します
$OUT_DEVICE_PRECIS - システムに同じ名前のフォントが複数ある場合、フォントマッパーにデバイスフォントを選択するよう指示します
$OUT_OUTLINE_PRECIS - Windows NT/2000/XP: フォントマッパーにTrueTypeやその他のアウトラインベースフォントを選択するよう指示します
$OUT_PS_ONLY_PRECIS - Windows 2000/XP: フォントマッパーにPostScriptフォントのみを選択するよう指示します。
システムにPostScriptフォントがインストールされていない場合、フォントマッパーはデフォルトの処理を返します
$OUT_RASTER_PRECIS - システムに同じ名前のフォントが複数ある場合、フォントマッパーにラスタフォントを選択するよう指示します
$OUT_STRING_PRECIS - この値はフォントマッパーに使用されません。ただしラスタフォントが列挙された場合に返されます
$OUT_STROKE_PRECIS - Windows NT/2000/XP: この値はフォントマッパーに使用されません。
ただしTrueType、その他のアウトラインベースフォント、ベクターフォントがが列挙された場合に返されます
$OUT_TT_ONLY_PRECIS - フォントマッパーにTrueTypeフォントのみを選択するよう指示します。
システムにTrueTypeフォントがインストールされていない場合、フォントマッパーはデフォルトの処理を返します
$OUT_TT_PRECIS - システムに同じ名前のフォントが複数ある場合、フォントマッパーにTrueTypeフォントを選択するよう指示します
$nClipPrec [オプション]クリッピング精度を指定します。次の値の組み合わせです:
$CLIP_CHARACTER_PRECIS - 使用されません
$CLIP_DEFAULT_PRECIS - デフォルトのクリッピング処理を指定します
$CLIP_EMBEDDED - 埋め込みの読み取り専用フォントを使用するためにこのフラグを指定します
$CLIP_LH_ANGLES - この値が使用された場合、全てのフォントの回転は座標系の方向が左手系か右手系かに依存します。
使用しない場合、デバイスフォントは常に反時計回りに回転し、その他のフォントの回転は座標系の方向に依存するようになります。
$CLIP_MASK - 使用されません
$CLIP_STROKE_PRECIS - フォントマッパーには使用されません。ただしラスタフォント、ベクターフォント、TrueTypeフォントが列挙された場合に返されます
Windows NT/2000/XP: 互換性のためにこの値はフォントの列挙時に常に返されます
$CLIP_TT_ALWAYS - 使用されません
$nQuality [オプション]出力品質を指定します。次の値のいずれかです:
$ANTIALIASED_QUALITY - Windows NT 4.0以降: フォントがアンチエイリアスをサポートしており、フォントサイズが小さすぎたり大きすぎる場合、フォントはアンチエイリアス、スムージングされます
Windows 95 with Plus!、 Windows 98/Me: ディスプレイは8ビット色以上で、 単一平面デバイスでなくてはなりません。 またパレットディスプレイであってはならず、 複数ディスプレイモニタの設定になっていてはなりません。
さらにDIBSectionで使用するよりも前にスクリーンDCでそのTrueType フォントを選択しておかなければなりません。 以上の条件が満たされていなければアンチエイリアスはおこなわれません。
$DEFAULT_QUALITY - フォントの見栄えは考慮されません
$DRAFT_QUALITY - フォントの見栄えはPROOF_QUALITY値が使用された場合に比べ考慮されません。
GDIラスタフォントでスケーリングが有効な場合、より多くのフォントサイズが利用可能ですが品質は下がります。
必要な場合、太文字、イタリック、下線、取り消し線が合成されます。
$NONANTIALIASED_QUALITY - Windows 95 with Plus!、Windows 98/Me、Windows NT 4.0以降: フォントはアンチエイリアスされず、フォントのスムージングはおこなわれません。
$PROOF_QUALITY - フォントの文字品質が論理フォント属性の完全一致よりも重視されます。
GDIラスタフォントではスケーリングが無効になり選択されたサイズにもっとも近いフォントが選択されます。
PROOF_QUALITYが使用された場合、選ばれるフォントのサイズは正確には一致しませんがフォントの品質は高く、表示のゆがみははありません。
必要な場合、太文字、イタリック、下線、取り消し線が合成されます。
$nPitch [オプション]フォントのピッチとファミリーを指定します。下位2ビットでフォントのピッチを指定し、次の値のいずれかです:
$DEFAULT_PITCH、$FIXED_PITCH、$VARIABLE_PITCH
上位4ビットでフォントファミリーを指定し、次の値のいずれかです:
$FF_DECORATIVE - 飾付きフォントです。Old Englishなどがあります。
$FF_DONTCARE - デフォルトフォントを使用します。
$FF_MODERN - 固定ストローク幅を持つ、セリフ付きまたはセリフなしのフォントです。Pica、Elite、Courier Newなどがあります。
$FF_ROMAN - 可変ストローク幅を持つセリフ付きフォントです。MS Serifなどがあります。
$FF_SCRIPT - 手書き風のフォントです。Script、Cursiveなどがあります。
$FF_SWISS - 可変ストローク幅を持つセリフなしフォントです。MS Sans Serifなどがあります。
$szFace [オプション]書体名

 

返し値

成功: 論理フォントのハンドル
失敗: 0

 

注意

フォントが必要なくなった際は_WinAPI_DeleteObjectを呼んで削除してください。
定義済み定数用にFontConstants.au3が必要です。

 

関連

 

こちらも参照

MSDNライブラリでCreateFontを検索して下さい。

 


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

Global $tRECT, $hFont, $hOldFont, $hDC

HotKeySet("{ESC}", "_Exit")

$tRECT = DllStructCreate($tagRect)
DllStructSetData($tRECT, "Left", 5)
DllStructSetData($tRECT, "Top", 5)
DllStructSetData($tRECT, "Right", 250)
DllStructSetData($tRECT, "Bottom", 50)

$hDC = _WinAPI_GetDC(0)
$hFont = _WinAPI_CreateFont(50, 0, 0, 0, 400, False, False, False, $DEFAULT_CHARSET, _
        $OUT_DEFAULT_PRECIS, $CLIP_DEFAULT_PRECIS, $DEFAULT_QUALITY, 0, 'Arial')
$hOldFont = _WinAPI_SelectObject($hDC, $hFont)

_WinAPI_SetTextColor($hDC, 0x0000FF)
_WinAPI_SetBkColor($hDC, 0x000000)
; 次の行をコメント化すると背景色が透過色から黒色になる
_WinAPI_SetBkMode($hDC, $TRANSPARENT)

While 1
    _WinAPI_DrawText($hDC, "Hello world!", $tRECT, $DT_CENTER)
    Sleep(100)
WEnd

Func _Exit()
    _WinAPI_SelectObject($hDC, $hOldFont)
    _WinAPI_DeleteObject($hFont)
    _WinAPI_ReleaseDC(0, $hDC)
    _WinAPI_InvalidateRect(0, 0)
    $tRECT = 0
    Exit
EndFunc   ;==>_Exit