[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/06/15(Wed) 13:04
投稿者名:ゆうや
Eメール:curren62036@yahoo.co.jp
URL :
タイトル:
違う画面サイズでの実行について。
こんにちは。わからないことがあるので投稿してみました。
Win2000 で VB6.0 SP6 を使っています。

普段、1024 x 768 サイズの画面で最適化してアプリケーションを作って、動かしています。
ただ、800 x 600 の画面でいざ動かそうとしたら、フォームの端が、画面サイズから先が
途切れてしまいました。

このような時、「800 x 600画面サイズに合うように全部作り直して実行」という手段しかないのかなぁ、
と思っているのですが、何か一発やると画面サイズに合うようにコンパイルしてくれる、とか
ないのでしょうか。

1024 x 768画面サイズで作って、800 x 600画面サイズでも画面が途切れないようにする方法が
ありましたら教えてください。よろしくお願いします。

投稿時間:2005/06/15(Wed) 13:41
投稿者名:いな
Eメール:
URL :
タイトル:
Re: 違う画面サイズでの実行について。
>このような時、
>「800 x 600画面サイズに合うように全部作り直して実行」という手段しかないのかなぁ、

全部・・・。の意味にもよりますが画面に表示される全部の[コントロール]の
HeightやTop、Widthなどを調整するコードをFormのLoad時に追記すれば、
何も問題ないかと思います。

>1024 x 768画面サイズで作って、
>800 x 600画面サイズでも画面が途切れないようにする方法が
>ありましたら教えてください。よろしくお願いします。

800×600で使う可能性があるのであれば、
1024 x 768画面サイズだけで作るのは無理っていうかいうまでも無く非効率です。
画面サイズを切り替えて、確認とかしますよね?たぶん

投稿時間:2005/06/15(Wed) 13:51
投稿者名:ダンボ
URL :
タイトル:
Re^2: 違う画面サイズでの実行について。
過去ログで答えていましたので、こちらも参照を。

hhttp://www.bcap.co.jp/hanafusa/vbbbs/wforum.cgi?
mode=allread&pastlog=0001&no=1167&page=60&act=past#1167

投稿時間:2005/06/16(Thu) 20:57
投稿者名:ゆうや
Eメール:curren62036@yahoo.co.jp
URL :
タイトル:
Re^3: 違う画面サイズでの実行について。
いなさん、ダンボさん>
お返事ありがとうございました。

ダンボさんが教えてくれた市販のOCXを使うのも手なのですが、とりあえず、
ちまちまと、サイズ、フォントを変更して、800 x 600にあう状態にしようかなと思います。

教えていただいた、市販のOCXはVBソースコード付きみたいですね。コードだけほしい・・(笑)。

別の機会で、サイズ変更の関数作れたらいいなと思います(できるかなぁ。。)。

ありがとうございました。

投稿時間:2005/06/17(Fri) 13:47
投稿者名:ダンボ
URL :
タイトル:
Re^4: 違う画面サイズでの実行について。
> 教えていただいた、市販のOCXはVBソースコード付きみたいですね。コードだけほしい・・(笑)。
> 別の機会で、サイズ変更の関数作れたらいいなと思います(できるかなぁ。。)。

頭に浮かぶアルゴリズムは、
・フォーム内のすべてのコントロールは把握できる(コントロールコレクション)
・各コントロールの(フォーム内の)絶対座標は把握できる(.Left,.Top,.Width,.Height)
・各絶対座標をフォームに対する相対座標(%)で記憶する。
・フォームのリサイズが起きたら、新しいフォームのサイズに対して「相対座標」を掛けて各コントロールの絶対
座標を求める。
・その絶対座標で各コントロールを再配置する(.Move)

まあ、こんなものでしょう。もっと細かいところでは、
・フォントサイズ…上記に準じる
・Shapeはコントロールコレクションに含まれていたかな?
・コンテナコントロール内のコントロールはどうするの?->徹底的にやるなら再帰的に。

売り物はそこら辺まで実装していることと思いますが、XGA-SVGA間の差異ぐらいなら上の5手順で
充分だと思いますよ。

#i486マシンの頃、これを実装したら紙芝居になって悲しかった。