No.2ベストアンサー
- 回答日時:
どもども、再び田吾作7です。
ぼくの知っている限りでは、常に最大化というのはMDIFormの子である限り、出来ません。(Windowsの仕様だと思うし・・・・)
「MDIFormの子もどき」とするのであれば可能です。
もどきというのは実際は子ではないのです。
手順を簡単に記すと(APIばっかりですが・・・)
1.MDIFormを開く
2.FindWindowExでMDIClient領域のハンドルを得る(クラス名="MDIClient")
3.常に最大化したいフォームを開く([MDIChild = False])
4.SetParentにてそのフォームをMDIClient領域が親になるようにする。
5.SetWindowLong(MDIFormWnd,GWL_WNDPROC,AddressOf オリジナル関数名)でウィンドウズのメッセージを監視する(プロセス監視)
6.サイズ変更終了時に最大化したいフォームの最大化時のサイズをセットする
(API忘れた・・・)
7.最大化のメッセージを送るSendMessage
ってな感じです。
もしこの方法を使用するのであれば、本来のMDIの子達の上に常に表示されてしまうので、子は使えません。よって、子を作成するには手順1から手順4を使用して、子を作成しなくてはいけません。さらに、MDIFormのメッセージをもっといろいろな種類を拾って、各子達を制御しなくてはならなく、また子達のメッセージも拾わなくてはいけなくなります。
これをやってたら大変ですよ。
ですので、プログラムの仕様の変更か、もしくはNo1の回答の手順を行うのがベストだと思います。
でわでわ
この回答へのお礼
お礼日時:2001/07/11 17:30
>ぼくの知っている限りでは、常に最大化というのはMDIFormの子である限り、出来ません。(Windowsの仕様だと思うし・・・・)
やはり、仕様の問題でしょうか。 どんなことを試してもだめだったので質問してみたのですが、やはりそうなのでしょうね。
一度、教えていただいた手法でがんばってみます。
No.1
- 回答日時:
どもども田吾作7です
常に最大化というのは。。。
アクティブになった時に最大化してはだめですか?
Private Sub Form_Activate()
Me.WindowState = vbMaximized
End Sub
それがだめなら、
Private Sub Form_Activate()
Me.Left = 0
Me.Top = 0
Me.Width = MDIForm1.ScaleWidth
Me.Height = MDIForm1.ScaleHeight
End Sub
というように、MIDFormの表示領域いっぱいにサイズを指定して、
最大化に近いサイズで表示するとか?
フォームを「BorderStyle=無し」にしてしまえば、ユーザからサイズの変更を
されることもないし、、、
このとき注意すべきは、MDIFormのResize時にも、
このような最大化もどきを行うコードを実行しなければ
ならないことです。
やっぱ反則?
でわでわ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Access(アクセス) アクセス フォームの自動入力 1 2023/03/20 00:18
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- JavaScript Google reCAPTCHAについて 1 2023/02/22 14:37
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Google Drive Google form を利用して 問い合わせフォームを作りたい 1 2022/04/25 14:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
Hideについて(.NET)
-
Form_Load と Form_Activate の...
-
エクセルVBA フォーム上でOnkey...
-
【VBAユーザーフォームで閉じる...
-
'ユーザーフォーム右上隅の[×...
-
ユーザーフォームのコピー?
-
MSGBOXのフォント大きさ変更
-
Excel VBAでユーザーフォームだ...
-
モーダルフォームとモードレス...
-
ユーザーフォーム上に現在日時...
-
コントロールの存在確認
-
C#で起動時のフォームを非表示...
-
VB.NETでフォームロード中のエ...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォームのテキストボ...
-
検索のユーザーフォームの表示...
-
VBE ユーザーフォーム重複・空...
-
エクセルVBAのフォームを最...
-
フォームの二重起動の阻止
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
クリックイベントなのに、2回ク...
-
Microsoft Formsの「個人情報や...
-
ユーザーフォームのテキストボ...
-
【VBAユーザーフォームで閉じる...
-
モーダルフォームとモードレス...
-
VBAでユーザーフォームを再表示...
-
エクセルVBAのフォームを最...
-
MSGBOXのフォント大きさ変更
-
Form_Load と Form_Activate の...
-
ユーザーフォーム上に現在日時...
-
Excelにて、ユーザーフォームで...
-
Hideについて(.NET)
-
フォームウィンドウを最前面に...
-
コントロールの存在確認
-
VBA(エクセル)のユーザー...
-
'ユーザーフォーム右上隅の[×...
-
エクセルVBA フォーム上でOnkey...
-
ブックをCloseまたはQuitで閉じ...
おすすめ情報