リッチテキスト試作 VB6
前へ 目次へ 次へ 

リッチテキスト 試作V

 フォントとは、文字のデザイン(字体)を表す情報である。テキストボックスを使ったテキストエディタを作成したときにもフォントを設定したが、そのときはすべての文字列のフォントの設定であった。リッチテキストでは、ワープロなどと同じように一部分の文字列に対してフォントを設定することができる。また、文字のサイズや色も設定することができる。


フォント名の設定

 文字列にフォントを設定するには、Windowsで使えるフォント名を指定する必要がある。まずは、Windowsで使用できるフォント名を知る方法、その次に設定方法について考える。


フォント名を知る

 テキストエディタの作成では、フォントのダイアログを使って設定したが、ここでは別の方法でプログラムする。
 Windowsで使うことができるフォント名は、Fontsプロパティを使い Screen.Fonts(n) の形で調べることができる。nは、0から使えるフォント数-1までを指定する。使えるフォント数はFontCountプロパティを使い Screen.FontCount の形で調べることができる(プリンタで使用できるフォントを調べるにはPrinterオブジェクトを使いPrinter.Fonts(n)、Printer.FontCountの形で調べることができる。)。次にプログラム例を示す。

Combo1.Text = FontName    '現在の使用フォント名
For n = 0 To Screen.FontCount - 1
    If Left(Screen.Fonts(n), 1) <> "@" Then
        Combo1.AddItem Screen.Fonts(n)
    End If
Next n 

 上の例は、コンボボックスにフォント名を登録している。フォント名が"@"で始まっているものは"@"で始まっていないものと同じ(?)ようなので、"@"で始まっていないフォント名だけを登録している。

 コンボボックスコントロールは、テキストボックス (TextBox) コントロールとリストボックス (ListBox) コントロールの機能を組み合わせたもので、テキストボックス部分に文字列を直接入力する方法と、リスト部分から項目を選択する方法のどちらでも入力できる。リストに文字列を設定するには、AddItemメソッドを使用する。Textプロパティは入力部分に表示される文字列を設定する。

 フォーム上にコンボボックスをひとつ追加する(下図参照)。リスト部分から項目を選択するとClickプロシージャが呼び出される。
 フォント名を登録する(フォント名の初期設定)処理は、最初に一度だけすればよいので、Form_Loadプロシージャに書く。

 コンボボックス(Combo1)
  Height … 300、   Left … 120、   Top … 6360、   Width … 2055

・プログラムリスト

Private Sub Form_Load()
    Dim n As Integer

    Text1.Text = RichTextBox1.TextRTF
    Combo1.Text = FontName    '現在の使用フォント名
    'フォント名リスト作成(フォント名の初期設定)
    For n = 0 To Screen.FontCount - 1
        If Left(Screen.Fonts(n), 1) <> "@" Then
            Combo1.AddItem Screen.Fonts(n)
        End If
    Next n
End Sub

Private Sub Combo1_click()
    RichTextBox1.SelFontName = Combo1.Text    'フォント名の設定
End Sub

 フォント名の設定には、SelFontNameプロパティを使う。


フォントサイズの設定

 フォントサイズ(文字の大きさ)もコンボボックスで設定できるようにする。サイズは8ポイントから32ポイントまでとする。

 フォーム上にコンボボックスをもう一つ追加する(下図参照)。
 フォントサイズを登録する処理は、最初に一度だけすればよいので、Form_Loadプロシージャに書く。コンボをクリックしてリスト部分から項目を選択するとClickプロシージャが呼び出される。

 コンボボックス(Combo2)
  Height … 300、   Left … 2280、   Top … 6360、   Width … 975

・プログラムリスト

Private Sub Form_Load()
    Dim n As Integer

    Text1.Text = RichTextBox1.TextRTF
    Combo1.Text = FontName    '現在の使用フォント名
    Combo2.Text = FontSize    '現在の使用フォントサイズ
    'フォント名リスト作成
    For n = 0 To Screen.FontCount - 1
        If Left(Screen.Fonts(n), 1) <> "@" Then
            Combo1.AddItem Screen.Fonts(n)
        End If
    Next n
    'フォントサイズリスト作成
    For n = 8 To 32
        Combo2.AddItem Str(n)
    Next n
End Sub

Private Sub Combo2_Click()
    RichTextBox1.SelFontSize = Val(Combo2.Text)    'フォントサイズの設定
End Sub

 フォントサイズの設定には、SelFontSizeプロパティを使う。


文字色の設定

 色を設定するには、RGB関数を使う方法とQBColor関数を使う方法がある。ここでは簡単なQBColor関数を使うことにする。
 QBColor関数は色番号を引数に指定して呼び出すことで色データを返却する。色番号は0から15までである。

0 8 灰色
1 9 明るい青
2 10 明るい緑
3 シアン 11 明るいシアン
4 12 明るい赤
5 マゼンタ 13 明るいマゼンタ
6 14 明るい黄
7 15 明るい白

 フォーム上にコンボボックスをひとつ追加する(下図参照)。
 色番号を登録する処理は、最初に一度だけすればよいので、Form_Loadプロシージャに書く。コンボをクリックしてリスト部分から項目を選択するとClickプロシージャが呼び出される。

 コンボボックス(Combo3)
  Height … 300、   Left … 3360、   Top … 6360、   Width … 975

・プログラムリスト

Private Sub Form_Load()
    Dim n As Integer

    Text1.Text = RichTextBox1.TextRTF
    Combo1.Text = FontName    '現在の使用フォント名
    Combo2.Text = FontSize    '現在の使用フォントサイズ
    Combo3.Text = "0"        '現在の色番号(QBColor)
    'フォント名リスト作成
    For n = 0 To Screen.FontCount - 1
        If Left(Screen.Fonts(n), 1) <> "@" Then
            Combo1.AddItem Screen.Fonts(n)
        End If
    Next n
    'フォントサイズリスト作成
    For n = 8 To 32
        Combo2.AddItem Str(n)
    Next n
    '色番号作成
    For n = 0 To 15
        Combo3.AddItem Str(n)
    Next n
End Sub

Private Sub Combo3_Click()
    RichTextBox1.SelColor = QBColor(Val(Combo3.Text))    'フォントカラーの設定
End Sub

 フォントカラーの設定には、SelFontColorプロパティを使う。



いろいろなフォントサイズ・色を指定した例


前へ 目次へ 次へ 
Copyright © 2001 Hiroshi Masuda 

 

 

inserted by FC2 system