外語対応でのフォント設定

解決


お願いします  2009-11-11 21:41:09  No: 102072

VB6.0で日本語と英語の対応をストリングテーブルを使って、LoadResStringを用いて行っています。
日本語時には、リストボックスのフォントにMSゴシックを使用しています。
英語持には、どのようにしてフォントの設定をすればいいのでしょうか。


魔界の仮面弁士  2009-11-12 07:38:13  No: 102073

> リストボックスのフォントに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


N・アクア・ドルフィン  2009-11-12 22:03:10  No: 102074

ワクワクを思いだんすんだ


お願いします  2009-11-13 04:38:08  No: 102075

魔界の仮面弁士さん、詳しく教えていただいてありがとうございます。
もう1つ教えてください。

ソフト起動時に、地域の設定で日本語と英語の表示を切り分けています。
日本語の時と英語の時でフォントの設定を変えることは可能でしょうか。


魔界の仮面弁士  2009-11-15 03:58:44  No: 102076

> 日本語と英語の表示を切り分けています。
切り分けは既にできているのですね?

だとしたらその判定条件にあわせて、それぞれのコントロールの
Font を変更するコードを記述していくことになるかと思います。
(VB.NET の Localizable/Language のような、一括して切り替える機能はありません)

なお、Font プロパティが未設定(設定を全く変更していない場合)は、
各言語版のVBランタイムに併せて、それぞれの既定のフォントが使われます。
  日: MS Pゴシック, 9Pt, Charset = 128
  英: MS Sans Serif, 8.25Pt, Charset = 0

もう一つ。フォントを変更した場合には、コントロールのサイズが
影響を受ける可能性があることにも注意してください。場合によっては、
コントロールの位置調整などが必要になるかもしれません。


お願いします  2009-11-21 00:28:16  No: 102077

遅くなって申し訳ありません。
選択されている地域から、フォントを切り替える処理で対応しました。

魔界の仮面弁士さんありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加