開発環境はVB6.0 Windows XP(日本語)です。
VB6.0でCommonDialogを使用してフォントを設定させるプログラムを以下のように組みます。
CommonDialog1.flags = cdlCFBoth
CommonDialog1.FontName = Text1.FontName
CommonDialog1.FontSize = Text1.FontSize
CommonDialog1.FontBold = Text1.FontBold
CommonDialog1.FontItalic = Text1.FontItalic
CommonDialog1.ShowFont
以上の設定でCommonDialogは「フォント名」「スタイル」「サイズ」を任意に指定できますが、
「文字セット」の部分を指定することができません。
また、CommonDialogから指定したフォントの値を取得できますが
「文字セット」の部分に関しては得る事ができません。
例えば、日本語OSで中国語のNSIMSUNフォントを指定し、
さらに文字セットをCHINESE_GB2312に指定します。
しかし、「文字セット」の情報を取得できないので
NSIMSUNフォントのCHINESE_GB2312を使用したくても使用できません。
「文字セット」の情報の取得方法を教えていただけますでしょうか?
CommonDialog コントロールからの直接取得はできません。
かわりに、API を使用するようにしてください。
http://support.microsoft.com/kb/625288/it
# 上記はイタリア語です(英語版・日本語版では公開されていませんでした)が、
# コードは万国共通なので、頑張って読み取ってください。
早速、リンク先のプログラムを実行して解読してみました。
CommonDialogからのlgFont.lfCharSetで文字セットを得られることがわかりました。
ここで追加の質問になりますが、
CommonDialogを開くときに
「フォント名」「スタイル」「サイズ」「文字セット」を指定して開く事はできないでしょうか?
CommonDialogを開いたときに現在の設定値を表示したいのです。
現状では未指定の状態で開いてしまいます。
CF_INITTOLOGFONTSTRUCT とか。
ありがとうございます。
これで目的を達成できそうです。
ツイート | ![]() |