フォントハンドル
VBでフォントのハンドルを取得するのは案外面倒。hFontは使い終わったらDeleteObjectすること。nSizeはポイント数ではなく高さであることに注意。単位はピクセル。
Public Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W As Long, ByVal i As Long, ByVal u As Long, ByVal s As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long Public Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long Public Const FW_NORMAL = 400 Public Const SHIFTJIS_CHARSET = 128 Public Const OUT_DEFAULT_PRECIS = 0 Public Const CLIP_DEFAULT_PRECIS = 0 Public Const FIXED_PITCH = 1 Public Const FF_DONTCARE = 0 Public Const ANTIALIASED_QUALITY = 4 'フォントハンドルを取得する Public Function GetFontHandle(ByVal sName As String, ByVal nSize As Long) As Long Dim nWidth As Long Dim nHeight As Long Dim hFont As Long nHeight = nSize nWidth = 0 hFont = CreateFont(nHeight, nWidth, 0, 0, _ FW_NORMAL, False, False, False, _ SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, _ ANTIALIASED_QUALITY, FIXED_PITCH, _ sName) If hFont Then GetFontHandle = hFont Else GetFontHandle = 0 End If End Function
ここのところわりと忙しいので、ランチャーとかエディターとか弄る暇がそれほどないのが残念でならない。