お世話になっております。
環境:VB6.0(SP5)
現在サーバのバージョンアップに伴って、EXEをWinNTサーバから
Win2003サーバへ移しているのですが画面のレイアウトが崩れてしまいます。
具体的には、同一のEXEをWinNTサーバとWin2003サーバでそれぞれ
実行した時に、ラベルに表示されている5文字の文字列が、
WinNTサーバだと1行で表示するのですが、Win2003サーバだと、ラベルの
幅が足りないようで、最後の文字列を改行して表示してしまいます。
開発環境においても、以前の開発環境であるWin98と、
現在の開発環境であるWinXPでそれぞれ同一のソースを開いた時に、
Win98だと1行で表示するラベルを、WinXPだとやはり改行して
表示してしまいます。
この場合、ソースのレイアウトを修正してEXEを作り直すしか方法は
ないでしょうか?
それともOSの設定で解決できるものなのでしょうか?
ご存知の方いらっしゃいましたらご教授頂けると幸いです。
2003サーバは扱ったことがないのですが、
もしデスクトップのデザインが「Windows XP スタイル」ならば
「Windowsクラシック スタイル」に変更することで改善を試みることができないでしょうか?
お返事ありがとうございます。
Windowsクラシック スタイルに変えてみたのですが
改善されませんでした。
次回からは、あらかじめ余裕を持ったデザインにしておきましょう。(^^;
(個人的には、exe を作り直すことをお奨めします)
もしも、『全角固定ピッチフォントの仕様変更』が原因だとすれば、
http://www.microsoft.com/japan/msdn/windows/windowsxp/FixedPitchFont.asp
レジストリに Jpn98FixPitch フラグで解除できる…かも知れません。
(上記は XP の場合なので、Server2003で有効かどうかは不明です)
ただし、これを設定しても、ユーザー定義文字に対しては無効だそうです。
http://support.microsoft.com/kb/893614/ja
あとは、画面デザインが ScaleMode = vbTwips ではなく、vbPixel にて
指定されているのであれば……画面のプロパティから DPI 設定を変更すれば
文字のサイズが変更されるかもしれません。(あまりお奨めできない方法ですが)
全角固定ピッチフォントの仕様変更
http://support.microsoft.com/default.aspx?scid=kb;ja;417434
という仕様なので
>この場合、ソースのレイアウトを修正してEXEを作り直すしか方法は
ないでしょう。
みなさんありがとうございます。
原因は大体わかりました。
ご紹介頂いたサイトをもう少し詳しく読んで、
結果を報告させていただきたいと思います。
NTが4.0だという前提で回答します。
全角文字の方は魔界の仮面弁士さんの指摘の通りです。
もしNTがSP3以前の場合は、NT4.0SP4でのフォント変更が影響しているかもしれません(一部の文字幅が広がったため、表示が正しく収まらないといったトラブルが多発しました)。
http://support.microsoft.com/kb/414023/ja
OSとフォントのバージョンの対応表
http://www.hikari-tp.co.jp/data/hb23.html
遅れまして申し訳ありません。
WinXPユーザーの端末の設定を変えることは避けたいので、
今後のことを考えて、コントロール幅の長さに余裕を持たせて
EXEを作り直したいと思います。
みなさんありがとうございました。
ツイート | ![]() |