VB6で表示しているフォームを整列する機能を作っています。
EXCELのメニュー[ウィンドウ]-[整列]
に「並べて表示」があるのですが。
それと同じ様に、フォームを整理したいのですが
どうにもフローが考え付きません
どんなロジックでやってるか分かるかたいますでしょうか?
ヒントだけでも分かる方、いらっしゃいませんか?
Excel を例に出すと言う事は、MDIForm を使っておられるのですよね。
であれば、(MDIForm の)Arrange メソッドを使ってみてください。
Arrange vbCascade
Arrange vbTileVertical
Arrange vbTileHorizontal
すみません、例はEXCELですがMDIではないです。
うーむ。
MDI の場合、並び替えの処理は OS 自体が用意しているんですよ。
(WM_MDICASCADE とか WM_MDITILE とか WM_MDIICONARRANGE とか)
Arrange メソッドは、それをカプセル化しただけで。
デスクトップ全体に対しての並び替え配置でよければ、
CreateObject("Shell.Application").TileHorizontally
CreateObject("Shell.Application").TileVertically
なんていう方法もあるのですが、自アプリ限定となると、自前で
各フォームの Move メソッドを呼んでいくしか無いと思いますよ。
ところで、マルチモニタ環境の時は、どのように並べたいのでしょうか?
(Form1 がモニタ1 の上にあって、Form2がモニタ2 の上にあった場合とか)
おはようございます。
返信ありがとうございます。
そうですか、自前ですか。。。
分かりました、やってみます!
あ、マルチモニタは未対応でOKなので考えなくてもいいです。
ツイート | ![]() |