SetWindowLong関数 〜ウィンドウの最大化・最小化ボタンを無効にする方法〜
☆ その方法 −何と書けば良いのか?−
まず、ウィンドウの最大化ボタンを無効にしたい場合は、以下のように記述します。
long WinVal;
|
そして、上の例の赤字の部分を、次のように変えてやれば、他のボタンを無効にすることが可能になります。
最大化ボタン | WS_MAXIMIZEBOX |
最小化ボタン | WS_MINIMIZEBOX |
全部のボタン | WS_SYSMENU |
なお、この方法を使う場合、「閉じるボタンだけを無効にする」という事はできません。
☆ 使用例:(BCBで、Form1の最大化ボタンを無効にしたい場合。)
long WinVal;
|
なお、このAPIを使っても何も起こらないときは、いちどウィンドウを再描画してみると、うまくいくかもしれません。
☆ 解説 −SetWindowLong関数って、何?−
ウィンドウの最大化・最小化ボタンを消すには、WinAPIの
GetWindowLong 関数と SetWindowLong 関数を使います。
ウィンドウには、それぞれ色んなプロパティが格納されています。
基本的にWindowsでは、これらのプロパティをいじることで、ウィンドウの状態を変更しています。
このプロパティを取得する関数が、 GetWindowLong
関数です。
そして、この関数で取得したプロパティを、いったん変数に入れ、プロパティを色々な演算でいじくり回します。
そのいじくり回したプロパティを、再度ウィンドウに覚え込ませるのが、
SetWindowLong 関数です。