tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル*.exe 配布時のForm のResize(解像度に関係が?)
記事No11859
投稿日: 2008/03/22(Sat) 04:57
投稿者BamChan
 またまた、初心者らしい質問で恐縮なのですが、
Formにスクロールバー(水平・垂直共)を表示させ、Resizeイベント時に、
それらを再配置しようと、それぞれのTopやLeftプロパティなどの値を
変えているのですが、(表示の小さなノートPCで動作させたところ)
「プロパティの値が不正です。」のランタイムエラーで落ちてしまいます。
原因としてはプラットホームでの描画時点で、FormのTop/Height/Left/Widthプロパティから、
スクロールバーの位置/サイズのプロパティを求める際に、
「ズボラをして直接『数値』を使って調整」したが為に(多分、解像度低いPCでは、)
値がマイナス値になってしまっているんだと思われるんですが、
この様な場合、定石として(一々APIか何かを使って)動作PCの解像度を考慮に入れなければ
いけないんでしょうか? 
(直接、『数値』などで調整するのは、非常識なのは承知?してはいるのですが‥)
又、Resize操作後のFormの大きさによっては、スクロールバーが必要ない場合も
ありまして、.Visible=Falseにしたいとも思っています。

 スマートな方法をお教え頂けないでしょうか。

[ツリー表示へ]
タイトルRe: *.exe 配布時のForm のResize(解像度に関係が?)
記事No11861
投稿日: 2008/03/22(Sat) 17:57
投稿者Starfish
 コントロールの大きさを変えないで、スクロールだけするなら
PictureBox の上にすべてのコントロールを乗せておいて
PictureBoxだけ移動させるのが楽だと思います。

 コントロールの大きさを変えるなら、リサイズイベント内では
on error resume next でエラーを無視するようにすると
エラー処理が楽になります。

[ツリー表示へ]
タイトルRe^2: *.exe 配布時のForm のResize(解像度に関係が?)
記事No11862
投稿日: 2008/03/22(Sat) 19:59
投稿者BamChan
>  コントロールの大きさを変えないで、スクロールだけするなら
> PictureBox の上にすべてのコントロールを乗せておいて
> PictureBoxだけ移動させるのが楽だと思います。
>
>  コントロールの大きさを変えるなら、リサイズイベント内では
> on error resume next でエラーを無視するようにすると
> エラー処理が楽になります。

早速、有難う御座います。求めていた解は前者です。
週明け(自宅には環境がないもので)に早速やってみます。
(そういう手があったのですね!)

後者も含め、勉強させて頂きました。

[ツリー表示へ]