- 締切済み
vb5.0で解像度によって画面の大きさおかえたいのですが
640x480で、画面設計をおこなっています。 800x600と1024x768の時に画面を大きくしたいのですが 全体的におおきくしたいのです。 どうすればいいのか教えてください。 1024x768で画面設計して、640x480にちいかくもできますか。 両方ためして、きれいほうをしようとおもうのですが
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- sorarisp
- ベストアンサー率58% (7/12)
screen.Heightで画面の縦幅が取れます。 それを利用して画面の比率を取得して全体的に大きく(または小さく)できます。 下記に簡単なサンプルを記述します。 Private Sub Form_Load() Dim MyCtl Dim Ratio As Double Dim Resize As Boolean Ratio = Screen.Height / 11520 For Each MyCtl In Form1 Resize = False If TypeOf MyCtl Is TextBox Then Resize = True ElseIf TypeOf MyCtl Is Label Then Resize = True ElseIf TypeOf MyCtl Is CommandButton Then Resize = True End If If Resize Then MyCtl.Top = MyCtl.Top * Ratio MyCtl.Left = MyCtl.Left * Ratio MyCtl.Width = MyCtl.Width * Ratio MyCtl.Height = MyCtl.Height * Ratio End If Next Form1.Height = Form1.Height * Ratio Form1.Width = Form1.Width * Ratio End Sub この場合の 11520 は 1024 X 768 時のScreen.Height の値です。 ですが、この方法ですとフォントサイズによっては テキストボックスが重なったり横幅が足りなくなったり とするので、最小サイズを基準とする方が見栄えがいいです。
- todo36
- ベストアンサー率58% (728/1234)
VS-Resizerという市販OCXがお勧めです。 コントロールのサイズ調整・位置調整を自動的にやってくれます。
起動時のウィンドウを表示する前に、解像度を取得して、サイズ変更してあげればいいのではないでしょうか? その際にOnSizeイベントで、中のエディットボックスなどのコンポーネントのサイズも一緒に変更するようにすれば、比較的きれいに見えると思います。 同時に、OnSizeイベントで、最小のウィンドウサイズなども決めることができるので、あるサイズ以上は画面が汚くなるとかそういった理由で制限をかけることも可能ですよ。ただし、コンポーネントが多いとOnSizeイベントを書くのが大変になりますが・・・ ではでは☆