画面で右上のボタンのつけ方について


WAKO  2004-05-26 13:07:03  No: 83560  IP: [192.*.*.*]

みなさんこんにちは
画面の事ですが、最小化のボタン(画面を表示させず、下に落とす)
だけ取り付ける事ができるでしょうか。
よろしくお願いします。

編集 削除
seven  2004-05-26 14:17:56  No: 83561  IP: [192.*.*.*]

出来ません
最小化ボタンを有効かつ×ボタンを非表示には出来ない為です

ですので最大化ボタンはプロパティで非表示にして
×ボタンはQueryUnloadでキャンセルするのが妥当かと思います

編集 削除
WAKO  2004-05-26 20:13:21  No: 83562  IP: [192.*.*.*]

返答ありがとうございます。
controlBox = true にして、QueryUnloadでキャンセルをいれましたが
左上をクリックすると、メニュー(移動、最小化、閉じる)がでてきます。
これを出さない方法はありますでしょうか。
よかったら教えて下さい。

編集 削除
ゆう  2004-05-26 23:03:08  No: 83563  IP: [192.*.*.*]

問題はその処理を作成するのにどのくらいの労力なら許せるのかだと思いますよ。
やり方はいろいろあると思いますが、1つ2つ思いつく方法を
1)ウィンドウをサブクラス化してメッセージを横取りして、マウスの右クリックを無効にする。
2)ボタンの件も含めるのであればフォームのBorderStyleをなしに設定して
    PictureBoxなどでタイトルバーを作りウィンドウの処理を全て自分で書く。
    そうすればタイトルバー(に似たところ)をクリックしてもメニューも
    でず、最小化ボタンのみのウィンドウも作れると思います。

編集 削除
seven  2004-05-27 10:33:21  No: 83564  IP: [192.*.*.*]

メニュー(閉じる)が表示されてもControlBoxの×ボタン押下と同じく
QueryUnloadでキャンセルされますが
ダメなのですか?

編集 削除
nanashi  2004-05-27 10:37:51  No: 83565  IP: [192.*.*.*]

> 左上をクリックすると、メニュー(移動、最小化、閉じる)がでてきます。

QueryUnloadでキャンセルしてるならメニューから終了することも出来ないので
別に良いんじゃないかとも思いますが…。

APIのEnableMenuItemなどを使ってメニューを無効化すれば
見た目にも選択出来ないので(×ボタンも押せなくなるし)良いと思います。
メニュー自体を出したくないのであれば、
ゆうさんも仰ってるようにサブクラス化する必要がありますが。

編集 削除