[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/01/06(Thu) 16:34
投稿者名:aki
URL :
タイトル:
フォント一覧を取得したい
いつもお世話になっております。

フォント一覧を取得し、コンボボックスに表示したいのですが、
方法が分かりません。
APIを使わないとダメですかね?

よろしくお願いいたします。

投稿時間:2005/01/06(Thu) 16:56
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: フォント一覧を取得したい
> フォント一覧を取得し、コンボボックスに表示したいのですが、
> 方法が分かりません。

"MS Pゴシック"などのフォント名が取得できればよいなら、VB6の
ScreenオブジェクトやPrinterオブジェクトの「Fontsプロパティ」で取得できます。

投稿時間:2005/01/06(Thu) 17:00
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: フォント一覧を取得したい
先を越されたようですが、せっかくですので、サンプルでは縦書きフォントを取得
しています。

Private Sub Command1_Click()
    Dim strFontName  As String
    Dim lngCount As Long
    For lngCount = 0& To Printer.FontCount - 1
        With List1
            If Mid$(Printer.Fonts(lngCount), 1, 1) = "@" Then
                .AddItem Printer.Fonts(lngCount)
            End If
        End With
    Next lngCount
End Sub

どこかにサンプルを投稿していたはずだと思い探していて見つからなかったので・・・

でも今見たら hhttp://www.bcap.co.jp/hanafusa/VBHLP/pri_text.htm にあった。

上記では結構時間がかかりますので、API関数の EnumFontFamiliesEx を使用すれば
高速に取得する事が出来ます。

投稿時間:2005/01/06(Thu) 17:12
投稿者名:aki
URL :
タイトル:
ありがとうございました。
お二方ともありがとうございました。

    For icnt% = 0 To Screen.FontCount - 1
        Me.cbo_FontName.AddItem Screen.Fonts(icnt%)
    Next icnt%
    Me.cbo_FontName.Text = "MS ゴシック"

っとScreenを用いてやってみました。
表示速度は全く問題ないようです。

重ねてありがとうございました。