PCによってLeftプロパティがずれる現象を解決するには?

解決


おのっち  2006-10-03 23:55:49  No: 133494

いつも拝見させて頂いています。

環境
VB6(SP6)
OS:XP HOME Edition SP2

現在、上記環境で開発しています。
自PCでFormにPictureBoxを貼り付けたプログラムを作成しました。
作成したプログラム他PCで開いたところ、
FormのPictureBoxのLeftプロパティの値が変わっていました。

自PCで開いたPictureBoxのLeftプロパティ:168
他PCで開いたPictureBoxのLeftプロパティ:210

因みにFormのScaleModeプロパティは、ピクセルにしています。
上記のような現象を解決する方法はありますか?
よろしくお願い致します。


おのっち  2006-10-03 23:59:57  No: 133495

連投ですみません。
他PCも、開発PCと同様の環境です。


ささ  2006-10-04 00:13:17  No: 133496

そもそもずれてしまう原因は、
解像度が違う、Runtimeのバージョンが違う等
チェックする項目はいくつかありますが、

値を同じにするのが目的であれば
Leftプロパティは、値の取得だけでなく設定も可能なので
FormのLoadイベントの前(Sub Main)で設定するとか?


おのっち  2006-10-04 00:48:30  No: 133497

さささん、返事ありがとうございます。
解像度は同様にして確認しました。
Runtimeも同様のバージョンです。

>値を同じにするのが目的であれば
>Leftプロパティは、値の取得だけでなく設定も可能なので
>FormのLoadイベントの前(Sub Main)で設定するとか?

自PCで開いた時のLeftプロパティが、168です。
他PCで開いた時のLeftプロパティが、210で設定されています。
この時点でLeftプロパティが異なるので、表示位置がずれるはずですが、
自PC、他PC共に表示位置は同じです。(デザイン時)
他PCで開いたプログラムをロード時に(Sub Main)
Leftプロパティに値を設定すると(例えば168を設定)
他PCでロードしたプログラムは、自PCでロードしたプログラムに比べ、
左にずれてしまいます。

※初回質問時に、説明不足ですいません。


Geo=TK3  2006-10-04 09:54:05  No: 133498

Left プロパティの値が違っても表示位置が同じって事は、単に同じ Twips 値を Pixel 変換した後の値が異なっているだけの気がする。
それぞれの PC で Screen.TwipsPerPixelX プロパティ/Screen.TwipsPerPixelY プロパティの値が同じかどうか調べてみては。


おのっち  2006-10-04 20:43:57  No: 133499

Geo=TK3さん、お返事ありがとうございます。

>それぞれの PC で Screen.TwipsPerPixelX プロパティ/Screen.TwipsPerPixelY プロパティの値が同じかどうか調べてみては。

上記の設定を調べました。
自PCのScreen.TwipsPerPixelX プロパティ:15
他PCのScreen.TwipsPerPixelX プロパティ:12
でした。
この誤差は何なのか調べたところ、
DPIの設定によるものでした。
自PC:96
他PC:120
以上を 96 に合わせたところ正しく表示されました。
ありがとうございました。


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

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






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