VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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の仕様にあわせて隠し直さなければならない


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -