• 締切済み
  • すぐに回答を!

フォームの縦横比率を一定にする方法

お世話になります。 環境:NT4.0 W + VB6(SP3) 画面内に納まる程度のサイズ変更という前提で、フォームの縦横比率を一定にする方法を教えて頂けませんでしょうか? フォームの縦横のサイズが1対2だとします。 フォームの縦を1.5倍にしたら、横も1.5倍になるようにしたいのです。 Form_Resize()時に、フォームの縦が変更されたら横も変更する、あるいは横が変更されたら縦を変更するようにコーディングしたのですが、再帰的にForm_Resize()が呼ばれてしまい、正しくサイズが変更されません。 よろしくお願いします。

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.1
  • KojiS
  • ベストアンサー率46% (145/312)

簡単にしようと思ったら、変更前のフォームのサイズを憶えておいて、変更された方を変更するようにすればそれぞれが変更するようにコーディングできます。 再帰的に呼ばれる現象については、それはそれで正解なのですが、Widthを変更した直後に呼ばれるので、変更前のフォームのサイズを設定するタイミングを考えて設定すればできます。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答、ありがとうございました。 「変更前のフォームのサイズを設定するタイミングを考えて」とありましたので、そのあたりをいろいろ試してみたら、うまくいきました。 再帰的に呼ばれることも間違いじゃなさそうなのでほっとしてます。 まだ解像度と画面サイズがらみの処理が残っていて、完全ではありませんが、これで一安心です。 ありがとうございました。

関連するQ&A

  • 縦横比について

    よくモニターなどの画像比率について、 横のサイズを縦のサイズで割ったものを なぜ縦横比というのでしょうか。 横縦比ではないのでしょうか。

  • バラバラのサイズの画像のサイズ統一、白色で埋める

    VIXでいろいろなサイズ、縦横比率の画像を横サイズ指定でリサイズすれば横サイズは統一できますが、縦横比率に従って縦サイズはバラバラになります。 そこで、全ての画像を縦横一定のサイズに統一したい。左上を基点にしてもいいし、中心を基点にしてもいいが、余白部分は白色を埋め込む。 以上のようなことができるフリーソフトってありませんか。

  • Form_Resize以外でフォームサイズの変化を知る方法。

    NT4WS+VB6+SP5にて開発しております。 Form_Resizeイベント以外でフォームサイズの変化を知りたいと思っております。 実際Form_MouseUpを使えばわかるだろうと思い試してみたのですが、 Form_MouseUpイベント自体を発生させることが出来ずに断念しました(^^; ご存知の方よろしくお願いしますm(_ _)m

  • 角丸長方形を縦横の比率をそのまま拡大する方法を教えてください

    はじめまして。 illustratorとphotoshopを使用しているのですが、角丸長方形を縦横の比率をそのままで拡大していく方法がわかりません。 普通の長方形だとパスのオフセットでなんとか縦と横の辺の比率が一定で拡大ができるのですが、これが角丸だと、角の部分がどんどん大きくなっていってしまいます。 角の角度?といいますか、カーブ具合も同一で拡大していく方法を教えてください。 どうかよろしくお願いいたします。

  • 画像比率

    いけばなを習っています。 デジカメで花の作品を撮って、A4サイズのエクセルに貼り付けて整理しようと思っています。 画像が大きいので縦と横を縮めるのですが、この時に縦横の比率が元の画像と同じ比率 になるようにするには、どのようにすればいいのでしょうか。 よろしくお願いします。

  • ペイントで複数の写真で縦横比率を揃えるには

    顔写真をデジカメで撮りました。 下手なのでペイントのトリミングで切り取りました。 これまたヘタクソで、どれも縦横が不揃しでした。 切り取る際に縦と横の比率を揃えて切り取る方法を 教えてください!

  • PCの縦横比率について<自作イラストを携帯に送ると縦に伸びてしまいます>

    こんにちは、閲覧ありがとうございます。 実は私PCでイラストを描いているのですが、そこである問題が発生しています。 自分が描いたイラストを携帯に送ると縦に伸びる、というものです。(他の方の絵は縦に伸びません) 原因はおそらくPCにあります。PCに表示されるもの全てが横に伸びてしまっていると考えられます。そこで縦横比率を変えてみようと思うのですがどのように設定するのでしょうか? デスクトップで右クリックをしてプロパティから、というのを試してみたのですが表示されるものにプロパティが見つかりませんでした。 縦横比率の設定の仕方、又は画像が縦に伸びない他の方法を教えて下さい。 後図形などが縦横正確になる比率を教えてもらいたいです。 質問が多くて申し訳ありません。

  • デジタル一眼レフでの写真の、縦横の比率について

    ニコンのD5000のデジタル一眼レフを使っています。 今まで現像したことがなく、今回初めて現像しようと思い写真加工していました。 画面上で「大体Lサイズの仕上がりはこのくらいの大きさかな?」と試しにプレビューで縮小して出来上がりの雰囲気を確認したところ、一般的なLサイズの写真と縦横の比率が違うことに気付きました。 (一眼レフで撮った写真は、若干横が長いのです) そこでいくつか質問があります。 (1)このまま現像してしまったら、横が印刷されないのですよね? そういった場合は全部正しい比率にトリミングしてから現像に出すのが一般的なのでしょうか。 (2)また縦横の比率が違ってしまうのは私の一眼レフが原因なのでしょうか。 他の一眼レフユーザーの方でも、同じように比率の違いがあったりするのでしょうか。 どうぞ宜しくお願いします。

  • フォームがリサイズされた時の各コントロールの位置変更コードについて

    教えてください。 前々から疑問だったのですが、VBでフォームをリサイズした場合に それぞれのコントロールもそれに合わせて大きさが変更されたり 移動したりという状態にするには、当然Form_Resizeのコードを 書く必要があると思うのですが、VBでツールを作成される方は 皆さんひとつひとつのコントロールの位置を計算しながら毎回 コードを書いているのでしょうか? OCXなどを使うと、勝手にコントロールの位置を調整してくれるものも ありますが、やはり皆さん自分でコードを書いていらっしゃるのでしょうか? 私が分かるのは、フォームにテキストボックスのみを貼り付けて、 Private Sub Form_Resize() Form1.text1.Top = 0 Form1.text1.Left = 0 Form1.text1.Width = ScaleWidth Form1.text1.Height = ScaleHeight End Sub と書くと、リサイズに合わせてテキストボックスが画面いっぱいにサイズ変更 するというものです。 コマンドボタンとか色々貼り付けた状態ではどのように書けばいいのか いまひとつ分かりません。 皆さんはどのようにされているのでしょうか? 是非是非教えてください。

  • 印刷方向縦横変更の設定の仕方について

     VB初心者です。  印刷方向の縦横変更をしようとして、  Printer.Orientation = vbPRORlandscape Form4.PrintForm としたところ、  「このプリンターで印刷することはできません。」とエラーになります。  Printer.Orientation = vbPRORlandscape文がなければ、横で切れてしまいますが印刷されますし、プリンタのドライバのプロパティを直接縦方向印刷に変更したら、ちゃんと縦に正常に印刷します。  また、Printer.Orientation = vbPRORlandscape文だけでもエラーとなりません。    いちいちプリンタプロパティを変更せずに、VB側から直接操作するにはどのようにしたらよいのでしょう。  よろしくお願いします。