MDIフォームのコントロールボックスを設定するには?

解決


たき  2003-03-06 06:52:49  No: 106201

通常のフォームの場合、
BorderStyleプロパティでフォームのスタイルを、
ControlBox、MinButton、MaxButtonでコントロールボックスの表示を
設定できますが、
MDIフォームでも同じように設定することは出来ないのでしょうか?
ヘルプを見ても見つけられなかったので、出来ないのかもしれませんが、
もし設定することが出来るのでしたら、その方法を教えていただけないでしょうか?
よろしくお願いします。


とろ  2003-03-06 18:10:00  No: 106202

以下のページが参考になると思います。

GetWindowLong API, SetWindowLong API
を使用しなければなりません。

http://support.microsoft.com/default.aspx?scid=kb;ja;137033


たき  2003-03-06 19:44:46  No: 106203

とろさんありがとうございます。
上手くコントロールボックスの設定をすることが出来ました。

しかし、フォームのサイズをカーソルで変更できてしまうので、
変更できないようにしたいのですが、
それはどうやって行うのでしょうか。
要は最大・最小ボタンを消して、フォームのサイズを変更できなくしたいんです。
SetWindowLongを使えばそれも出来るかと思って調べてみたのですが、
なかなか見つかりませんでした。
別のAPIを使うのでしょうか。


とろ  2003-03-06 20:27:41  No: 106204

# 少しは自分で考えましょう。
下のようにするだけです。

Const WS_THICKFRAME = &H40000

Private Sub MDIForm_Load()
  Dim L As Long
  L = GetWindowLong(Me.hwnd, GWL_STYLE)
  L = L And Not (WS_MINIMIZEBOX)
  L = L And Not (WS_MAXIMIZEBOX)
  L = L And Not (WS_THICKFRAME)
  L = SetWindowLong(Me.hwnd, GWL_STYLE, L)
End Sub


たき  2003-03-06 21:20:02  No: 106205

とろさんどうもありがとうございました。
もっと時間をかけて調べてから投稿すべきだったと反省しております。
これらのAPIについて、この後もっと調べてみようと思います。
いろいろなことに応用できるようなので。
これからはもっと調べてから質問するよう気をつけたいと思いますので、
これからもよろしくお願いします。
失礼します。


たき  2003-03-06 21:56:56  No: 106206

解決チェックを入れるのを忘れていました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加