投稿日 | : 2007/03/07(Wed) 00:08 |
投稿者 | : ダンボ |
Eメール | : |
URL | : |
タイトル | : Re^4: ユーザーコントロールがある場合の最大化 |
> ダンボさんやガッさんの御意見を元に自分なりに以下のコードを記述してみました。
> よろしくお願いします。
んなこと言われてもね。
ダンボのコードではうまく動作しなかなかったから御自分で改良(改悪)したということですか?
あのコードで動作しなければ責任とってつきあいますけど、何かFRさんコーディングミスをして
迷走を始めた気がします。
Resizeイベントでクラス登録をしようなんて所を見るとまるきりわかっていないんだなと。
If (TypeOf ctl.Container Is SSTab) And (ctl.Left < 0) Then
.csHideSSTab = True
.csLeft = ctl.Left + 75000
Else
.csHideSSTab = False
.csLeft = ctl.Left
End If
が無いのに、
If .csHideSSTab Then
.csControl.Left = .csLeft * ratScaleWidth - 75000
Else
.csControl.Left = .csLeft * ratScaleWidth
End If
があっても意味ないじゃないですか。
#(Option Explicitの他に、値が明示的に未設定な変数を参照したらエラーにする機能が欲しい)
このプログラムの動作原理は、
・フォームロード時にすべてのコントロールの座標と大きさを記録しておく
・フォームリザイズ時に、まず拡大率(縮小率)を求めておいて、すべてのコントロールの
座標と大きさに対してその拡大率(縮小率)を掛ければ良い
・但しSSTab内のコントロールだけは単純には行かず、隠されたコントロールの本来の座標を
記憶せねばならず、また拡大(縮小)するときもSSTabの仕様にあわせて隠し直さなければならない