94.使用できるフォントを列挙する
< 使用用途 >
使用できるフォントを列挙する
今回のサンプルソースをダウンロードする方は下記の「ダウンロード」を!
=> ダウンロード・・・ 下に書いてあるサンプルソースと同じです
< 説明 >
API関数のEnumFonts を使用します
EnumFonts =>使用できるフォントを列挙する
<引数>
hDC:デバイスコンテキストのハンドル
lpsz:フォント名のアドレス
lpFontEnumProc:コールバック関数のアドレス
lParam:メモリへのポインタ
@戻り値@
正常終了0以外
< SAMPLE >
’ここでは使用できるフォントを列挙する処理です
'標準モジュール
Public Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA"
(ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long,
ByVal lParam As Long) As Long
Public Const LF_FACESIZE = 32
Public Const FW_NORMAL = 400
Public Const FW_BOLD = 700
'論理フォント構造体
Public Type LOGFONT
lfHeight As Long
lfWidth As Long
lfEscapement As Long
lfOrientation As Long
lfWeight As Long
lfItalic As Byte
lfUnderline As Byte
lfStrikeOut As Byte
lfCharSet As Byte
lfOutPrecision As Byte
lfClipPrecision As Byte
lfQuality As Byte
lfPitchAndFamily As Byte'
lfFaceName(LF_FACESIZE) As Byte
End Type
'TEXTMETRIC構造体
Type TEXTMETRIC
tmHeight As Long
tmAscent As Long
tmDescent As Long
tmInternalLeading As Long
tmExternalLeading As Long
tmAveCharWidth As Long
tmMaxCharWidth As Long
tmWeight As Long
tmOverhang As Long
tmDigitizedAspectX As Long
tmDigitizedAspectY As Long
tmFirstChar As Byte
tmLastChar As Byte
tmDefaultChar As Byte
tmBreakChar As Byte
tmItalic As Byte
tmUnderlined As Byte
tmStruckOut As Byte
tmPitchAndFamily As Byte
tmCharSet As Byte
End Type
Public Function FontEnumProc(lpsz As LOGFONT, Metric As TEXTMETRIC, X As
Integer, Y As String) As Long
'文字列を変換してリストに追加
Form1.List1.AddItem StrConv(lpsz.lfFaceName, 64)
'0以外の数を指定
FontEnumProc = 1
End Function
'ここからはフォーム内の処理です
Private Sub Command1_Click()
Dim Ret As Long
Ret = EnumFonts(hDC, vbNullString, AddressOf FontEnumProc, ByVal
0&)
End Sub