なんと、HUNTER×HUNTERの新刊出るんですね。しらんかった。
C#で例えば最大化とかのイベントを取得してみます。
FormBorderStyleをtoolwindowとかにしておけば、最大化・最小化ボタンはなくなりますが、タイトルバーをダブルクリックしたり、右クリックから最大化とかを選択したら最大化されてしまいます。
こういうのを無効にしたいときはFormのWndProc()をオーバーライドします。
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_MASK = 0xFFF0;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
// フォームの最大化・最小化を捕捉したら以降の制御をカットする
switch (m.Msg)
{
case WM_SYSCOMMAND:
switch (m.WParam.ToInt32() & SC_MASK)
{
case SC_MINIMIZE:
case SC_MAXIMIZE:
return;
break;
default:
break;
}
break;
default:
break;
}
// 基本クラスのメソッドを実行する
base.WndProc(ref m);
}
まー、この辺は完全にWin32APIの話ですが。
どうようにしてSC_MOVEをとれば移動できないようなものもつくれます。
以上
Form のプロパティの MaximizeBox と MinimizeBox を False にすれば両方とも無効にできますよ。
そんな簡単にできたのか。知りませんでした。
まあ、記事のようにすると状況に応じて最大化・最小化を無効・有効にできるということで。
RFRの場合、ツールバーのときは無効、ツールバーじゃないときは有効になるように、switchの中にさらにif文分岐してます。
タイトルバーダブルクリックでの
「通常」→「最大化」とか「最大化」→「戻す」が
捕捉できなかったりします…
解決策模索中…
>タイトルバーダブルクリックでの
>「通常」→「最大化」とか「最大化」→「戻す」が
>捕捉できなかったりします…
あれ?少なくとも「通常」→「最大化」は補足できますよ。タイトルバーをダブルクリックの。
I read several good stuff here. Certainly worth bookmarking for revisiting. I surprise how much effort you put to create such a excellent informative website.
There is certainly a lot to learn about this issue.
I love alll of the points you have made.