ListViewがフォントサイズの違いで文字化けします

解決


 2007-12-18 16:59:53  No: 138432  IP: 192.*.*.*

ListViewがフォントサイズの違いで文字化けしてしまいます。
フォントはMSPゴシックで、サイズ11の場合は普通に表示されるのですが
サイズ9にしている箇所のみ文字化けしています。
試しに同一箇所を8と10へ変更して確認したところ、問題なく表示します。
項目数とサイズの関係上、サイズは9としたいのですが何が問題であるか見当がつきません。
何かご存じの方々、何卒宜しくお願いします。

XP VB6.0SP5

編集 削除
とり  2007-12-19 00:51:52  No: 138433  IP: 192.*.*.*

回答ではないですが、別のフォントではどうなりますか?

編集 削除
 2007-12-19 10:51:45  No: 138434  IP: 192.*.*.*

とりさん、返信ありがとうございます。

最初の質問時に説明が不足していましたので補足致します。
作成しているPCでの画面上ではListViewに文字化けはありません。
作成したソフトを導入したPCでのListView MSPゴシック(9)のみ文字化け状態です。

ListViewのフォントをMSPゴシック(9)からMSゴシック(9)、MSP明朝(9)などに
変更したexeへ差し替えて実行したところ、文字化けされずに表示されました。
とりあえずMSゴシック(9)とフォントを変更しておこうかと思います。

宜しくお願いします。

編集 削除
魔界の仮面弁士  2007-12-20 01:37:55  No: 138435  IP: 192.*.*.*

> MSPゴシック
「MSPゴシック」ではなく、
「MS Pゴシック」にする必要があります。(全角半角の違いにも注意)

> 文字化け状態です。
おそらくは、ランタイムをインストールし忘れているのだと思います。
特に、vb6jp.dll が不足している可能性が高いです。(ランタイム再頒布が必要)

実行環境で、MsgBox ListView1.Font.Name などを実行して、
本当に、MS Pゴシック になっているかを確認してください。
# vb6jp.dll が無い場合、Font を修正しなかった場合(初期設定のまま)と、
# Font を明示的に指定した場合とでは、結果が異なる可能性があります。

編集 削除
 2007-12-20 21:43:14  No: 138436  IP: 192.*.*.*

魔界の仮面弁士さん、返信ありがとうございます。

MSPゴシックはMS Pゴシックのことです。
MS Pゴシックは1種類しかないと思い記述しました。失礼しました。

InstallShieldでSetup.exeを作成しているのですが、
ListViewで使用しているフォントがMS Pゴシックでサイズ9、10、11を利用している場合、
導入したPCにはvb6jp.dllが導入されていない状態でした。サイズ9だけ文字化け状態です。

MS Pゴシックでサイズ9のListViewをMS UI Gothicサイズ9へ変更したSetup.exeが作成済
でしたので試したところvb6jp.dllが導入されていました。

作成時はサイズの変更のみでフォントは初期設定のままだったように記憶していますので
全てのListViewのフォントを再選択した状態で試してみようと思います。
ありがとうございました。

編集 削除
魔界の仮面弁士  2007-12-21 16:14:44  No: 138437  IP: 192.*.*.*

> MS Pゴシックは1種類しかないと思い記述しました。失礼しました。
1 種類かどうかと問われると、"MS Pゴシック" (または、"MS PGothic") 自体は、
version 2.3 や 2.5 など、細かな違いが一応ありますね。
ただし、それは今回関係がありません。
http://ja.wikipedia.org/wiki/MS_%E3%82%B4%E3%82%B7%E3%83%83%E3%82%AF


> vb6jp.dllが導入されていない状態でした。
そのファイルが未導入の場合、英語モードで動作する事になります。

英語環境の「既定のフォント」は MS Sans Serif, 8.25Pt, Charset = 0 、
日本語環境の場合は、MS Pゴシック, 9Pt, Charset = 128 です。

そして、MS Sans Serif 自体は欧文フォントなので、日本語の文字列を
表示させようとすると、文字化けが発生してしまう…というわけです。


> 初期設定のままだったように記憶していますので
一度も設定していないなら、それは「既定のフォント」で動作します。
明示的に設定しているなら、vb6jp.dll が無くても化けずに表示されます。

ただし、vb6jp.dll が無い環境では、エラーメッセージが英語化するなどの
弊害もありますので、いずれにしても、vb6jp.dll を始めとするランタイムを、
正しく配布しておくべきでしょうね。

編集 削除
 2007-12-21 20:53:39  No: 138438  IP: 192.*.*.*

魔界の仮面弁士さん、更にありがとうございます。

フォントの種類は既定のままだとは思うのですが、ListViewについては
サイズを全て11ptへ変更し、表示項目との兼ね合いで修正していました。

サイズ違いで文字化け状態でしたので何が問題であるのか判断できず質問
させて頂きましたがお陰様で解決できそうです。

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

編集 削除