tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^4: Windowsのシステムで使用しているフォントの取得。
投稿日: 2009/11/20(Fri) 15:09
投稿者ヨシ
花ちゃん様、仮面弁士様
ご回答ありがとうございます。

現状を説明していながら、いろいろ説明が足りなかったようで
もうしわけありません。

現在、VC6++で作成したDLLに、例えば中国語の表示文言とフォント名を
持たせて、VB6で作成したEXE起動時にそれらを読み込み、VB6の各コントロール
のFontにDLLから取得したフォント名をセットすることで文字化けを回避しています。

そして今やりたいことは、DLLに設定されたフォントが該当のOSにインストール
されていなかった場合、システムのフォントを取得して、それを各コントロールの
Fontに設定することで、文字化けしないようにしたいと考えています。
DLL側は値のみを持たせているためVB6でこれらを実現したいです。


>> Windowsのフォーム、メッセージボックスでの表示に使用されているような
>> システムのフォントを取得する方法があったら教えていただけますでしょうか。
>Win32 API 関数の SystemParametersInfo を使えば取得する事ができるとは
>思うのですが?。

アドバイスありがとうございます。早速このAPIを使ってみました。
日本語OSでは、システムフォントを取得しバイト型のまま(LOGFONTのlfFaceNameを)
各コントロールのFontに値を渡すと期待通りフォントが変更されました。
しかし、中国語OSで同様の処理を行っても、うまくいきませんでした。
バイト型のまま渡しているので取得したフォント名が内部で文字化けを起こした等は
ないと考えております。
何が原因なのか現在見当が付いていない状態です。

対応策、また誤った解釈等ありましたらご指摘いただけますでしょうか。
お手数ですが、よろしくお願いいたします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。