- PR -

Mdi子ウインドウのWindowStateについて

1
投稿者投稿内容
シド
会議室デビュー日: 2004/05/20
投稿数: 3
投稿日時: 2004-05-20 16:10
初めて質問させていただきます。宜しくお願いいたします。
VB.NETでMdi子ウインドウのWindowStateの操作についてなのですが。
Mdi子ウインドウ MdiChildA のWindowStateがMaximized、
Mdi子ウインドウ MdiChildB(MdiChildAとは別クラスのインスタンス)
のWindowStateがNormalの時
MdiChildA、MdiChildBの順番でShowするとMdiChildBも最大化されて
表示されてしまいますが、これを通常のサイズで表示する方法はない
でしょうか?
MdiChildB.Show()の実行後に、MdiChildB.FormWindowState.Normalを
実行するとMdiChildBは通常サイズになりますが、MdiChildAも最大サイズ
から通常サイズになってしまいます。
何とか、MdiChildAは最大表示で、その前面にMdiChildBを通常サイズで
表示させたいのです。どなたかご教授お願いします。

ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-20 16:32
引用:
シドさんの書き込み (2004-05-20 16:10) より:

Mdi子ウインドウ MdiChildA のWindowStateがMaximized、
Mdi子ウインドウ MdiChildB(MdiChildAとは別クラスのインスタンス)
のWindowStateがNormalの時
MdiChildA、MdiChildBの順番でShowするとMdiChildBも最大化されて

も、
引用:
MdiChildB.Show()の実行後に、MdiChildB.FormWindowState.Normalを
実行するとMdiChildBは通常サイズになりますが、MdiChildAも最大サイズ
から通常サイズになってしまいます。

も、Windows自体のMDIの仕様のような気がしますが……。
MDIの挙動で
引用:
何とか、MdiChildAは最大表示で、その前面にMdiChildBを通常サイズで

というアプリケーションを見た記憶がないですし。
(Excel2003でちょこちょこっと試してみましたが、勿論前者の挙動です。)

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-20 16:35 ]
シド
会議室デビュー日: 2004/05/20
投稿数: 3
投稿日時: 2004-05-20 16:49
ぢゃん♪さん、早速 返答いただきありがとうございます。
おっしゃるとおり、Mdiアプリケーションの標準の動作だとは思うのですが…
そもそも現在の対象のアプリケーションは、子ウインドウに対応する文書が
なく、単にMdi親ウインドウのクライアント領域の中に子ウインドウを配置したい
(最小化を含めて)という要求仕様にもとづくもので、無理があるような気は
するのですが…
何しろありがとうございました。
でも、もう少しねばって試してみます。

ぢゃん♪
大ベテラン
会議室デビュー日: 2003/06/12
投稿数: 208
お住まい・勤務地: 都内
投稿日時: 2004-05-20 16:58
あるいは、どちらもWindowStateがNormalで、

  1. Mdi子ウインドウ MdiChildAのサイズをMDIのフレーム内ぎりぎりまで広げる
  2. Mdi子ウインドウ MdiChildBを普通のサイズで表示する
ならば、擬似的に実現できるかもしれません。
(もっとも、私はMDIのプログラムを7年以上触ってないので、方法までは分かりませんが。)

[ メッセージ編集済み 編集者: ぢゃん♪ 編集日時 2004-05-20 16:59 ]
シド
会議室デビュー日: 2004/05/20
投稿数: 3
投稿日時: 2004-05-20 17:05
おおっ、なるほど。メインウィンドウのクライアント領域のサイズを取得すればできるような感じがしますね。
エンドユーザはきっと納得することでしょう。
ためしてみます。ありがとうございます。ぢゃん♪さん


1

スキルアップ/キャリアアップ(JOB@IT)