VB6.0で日本語と英語の対応をストリングテーブルを使って、LoadResStringを用いて行っています。
日本語時には、リストボックスのフォントにMSゴシックを使用しています。
英語持には、どのようにしてフォントの設定をすればいいのでしょうか。
> リストボックスのフォントにMSゴシックを使用しています。
"MSゴシック" ではなく、
"MS ゴシック" または
"MS Gothic" (英語名) ですよ。
> どのようにしてフォントの設定をすればいいのでしょうか。
コードで設定するのであれば、
List1.Font.Name = フォント名
List1.Font.Charset = ANSI_CHARSET
という感じで設定できるかと思います。
その環境にインストール済みのフォントを指定してください。
(指定したフォントが無い場合、別のフォントが代替として利用されます)
ユーザーに選ばせるのであれば、CommonDialog コントロールが使えるかと。
使用可能なフォントを列挙したい場合には、Screen.Fonts/FontCount を
利用してみてください。
なお Font の Charset プロパティには、0 や 128 などの数値が入ります。
Private Const ANSI_CHARSET As Long = 0
Private Const DEFAULT_CHARSET As Long = 1
Private Const SYMBOL_CHARSET As Long = 2
Private Const SHIFTJIS_CHARSET As Long = 128
Private Const HANGEUL_CHARSET As Long = 129
Private Const HANGUL_CHARSET As Long = 129
Private Const GB2312_CHARSET As Long = 134
Private Const CHINESEBIG5_CHARSET As Long = 136
Private Const OEM_CHARSET As Long = 255
Private Const JOHAB_CHARSET As Long = 130
Private Const HEBREW_CHARSET As Long = 177
Private Const ARABIC_CHARSET As Long = 178
Private Const GREEK_CHARSET As Long = 161
Private Const TURKISH_CHARSET As Long = 162
Private Const VIETNAMESE_CHARSET As Long = 163
Private Const THAI_CHARSET As Long = 222
Private Const EASTEUROPE_CHARSET As Long = 238
Private Const RUSSIAN_CHARSET As Long = 204
Private Const MAC_CHARSET As Long = 77
Private Const BALTIC_CHARSET As Long = 186
ワクワクを思いだんすんだ
魔界の仮面弁士さん、詳しく教えていただいてありがとうございます。
もう1つ教えてください。
ソフト起動時に、地域の設定で日本語と英語の表示を切り分けています。
日本語の時と英語の時でフォントの設定を変えることは可能でしょうか。
> 日本語と英語の表示を切り分けています。
切り分けは既にできているのですね?
だとしたらその判定条件にあわせて、それぞれのコントロールの
Font を変更するコードを記述していくことになるかと思います。
(VB.NET の Localizable/Language のような、一括して切り替える機能はありません)
なお、Font プロパティが未設定(設定を全く変更していない場合)は、
各言語版のVBランタイムに併せて、それぞれの既定のフォントが使われます。
日: MS Pゴシック, 9Pt, Charset = 128
英: MS Sans Serif, 8.25Pt, Charset = 0
もう一つ。フォントを変更した場合には、コントロールのサイズが
影響を受ける可能性があることにも注意してください。場合によっては、
コントロールの位置調整などが必要になるかもしれません。
遅くなって申し訳ありません。
選択されている地域から、フォントを切り替える処理で対応しました。
魔界の仮面弁士さんありがとうございました。
ツイート | ![]() |