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





API 技術関連のページへ戻る

ホーム PV ランキング