フォントリソースをロード         <TOP>


ディスクからフォントリソースをシステムフォントテーブルにロードします。

AddFontResource フォントリソースをディスクファイルからシステムフォントテーブルにロード

RemoveFontResource システムからフォントを削除

 

例では、Quake書体をロードし表示させています。当然 Quake.ttf が、指定フォルダになければなりません。

 

'================================================================
'= フォントリソースをロード
'=    (AddFontResource.bas)
'================================================================
#include "Windows.bi"
#include "File.bi"

' フォントリソースをディスクファイルからシステムフォントテーブルにロード
Declare Function Api_AddFontResource& Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName$)

' システムからフォントを削除
Declare Function Api_RemoveFontResource& Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFilename$)

Var Shared Text1 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 30
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14

Var Shared fFileName As String

'================================================================
'= ロードするパス名とフォント名取得
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    fFileName = CrDir$("")
    If Right$(fFileName, 1) <> "\" Then fFileName = fFileName & "\"
    fFileName = fFileName & "quake.ttf"
    Text1.SetWindowText "QUAKE"
End Sub

'================================================================
'= フォントテーブルにロード
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Ret As Long

    Ret = Api_AddFontResource(fFileName)
    Text1.SetFontName "Quake"
    Text1.SetWindowText "QUAKE"
End Sub

'================================================================
'= テーブルから削除(元のフォントに戻しておく)
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Ret As Long

    Ret = Api_RemoveFontResource(fFileName)
    Text1.SetFontName "MS ゴシック"
    Text1.SetWindowText "QUAKE"
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End