OSによって画面レイアウトが崩れます。

解決


れいこ  2006-01-24 01:32:59  No: 93792

お世話になっております。
環境:VB6.0(SP5)

現在サーバのバージョンアップに伴って、EXEをWinNTサーバから
Win2003サーバへ移しているのですが画面のレイアウトが崩れてしまいます。

具体的には、同一のEXEをWinNTサーバとWin2003サーバでそれぞれ
実行した時に、ラベルに表示されている5文字の文字列が、
WinNTサーバだと1行で表示するのですが、Win2003サーバだと、ラベルの
幅が足りないようで、最後の文字列を改行して表示してしまいます。

開発環境においても、以前の開発環境であるWin98と、
現在の開発環境であるWinXPでそれぞれ同一のソースを開いた時に、
Win98だと1行で表示するラベルを、WinXPだとやはり改行して
表示してしまいます。

この場合、ソースのレイアウトを修正してEXEを作り直すしか方法は
ないでしょうか?
それともOSの設定で解決できるものなのでしょうか?

ご存知の方いらっしゃいましたらご教授頂けると幸いです。


自称中級  2006-01-24 01:48:54  No: 93793

2003サーバは扱ったことがないのですが、
もしデスクトップのデザインが「Windows XP スタイル」ならば
「Windowsクラシック スタイル」に変更することで改善を試みることができないでしょうか?


れいこ  2006-01-24 04:03:42  No: 93794

お返事ありがとうございます。
Windowsクラシック スタイルに変えてみたのですが
改善されませんでした。


魔界の仮面弁士  2006-01-24 04:25:55  No: 93795

次回からは、あらかじめ余裕を持ったデザインにしておきましょう。(^^;
(個人的には、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 設定を変更すれば
文字のサイズが変更されるかもしれません。(あまりお奨めできない方法ですが)


もげ  2006-01-24 04:31:21  No: 93796

全角固定ピッチフォントの仕様変更
http://support.microsoft.com/default.aspx?scid=kb;ja;417434

という仕様なので
>この場合、ソースのレイアウトを修正してEXEを作り直すしか方法は
ないでしょう。


れいこ  2006-01-24 05:00:11  No: 93797

みなさんありがとうございます。
原因は大体わかりました。
ご紹介頂いたサイトをもう少し詳しく読んで、
結果を報告させていただきたいと思います。


ひろ  2006-01-24 19:17:04  No: 93798

NTが4.0だという前提で回答します。

全角文字の方は魔界の仮面弁士さんの指摘の通りです。

もしNTがSP3以前の場合は、NT4.0SP4でのフォント変更が影響しているかもしれません(一部の文字幅が広がったため、表示が正しく収まらないといったトラブルが多発しました)。

http://support.microsoft.com/kb/414023/ja

OSとフォントのバージョンの対応表
http://www.hikari-tp.co.jp/data/hb23.html


れいこ  2006-01-26 21:10:53  No: 93799

遅れまして申し訳ありません。

WinXPユーザーの端末の設定を変えることは避けたいので、
今後のことを考えて、コントロール幅の長さに余裕を持たせて
EXEを作り直したいと思います。

みなさんありがとうございました。


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

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






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