投稿日 | : 2005/06/17(Fri) 13:47 |
投稿者 | : ダンボ |
URL | : |
タイトル | : Re^4: 違う画面サイズでの実行について。 |
> 教えていただいた、市販のOCXはVBソースコード付きみたいですね。コードだけほしい・・(笑)。
> 別の機会で、サイズ変更の関数作れたらいいなと思います(できるかなぁ。。)。
頭に浮かぶアルゴリズムは、
・フォーム内のすべてのコントロールは把握できる(コントロールコレクション)
・各コントロールの(フォーム内の)絶対座標は把握できる(.Left,.Top,.Width,.Height)
・各絶対座標をフォームに対する相対座標(%)で記憶する。
・フォームのリサイズが起きたら、新しいフォームのサイズに対して「相対座標」を掛けて各コントロールの絶対
座標を求める。
・その絶対座標で各コントロールを再配置する(.Move)
まあ、こんなものでしょう。もっと細かいところでは、
・フォントサイズ…上記に準じる
・Shapeはコントロールコレクションに含まれていたかな?
・コンテナコントロール内のコントロールはどうするの?->徹底的にやるなら再帰的に。
売り物はそこら辺まで実装していることと思いますが、XGA-SVGA間の差異ぐらいなら上の5手順で
充分だと思いますよ。
#i486マシンの頃、これを実装したら紙芝居になって悲しかった。