2016-03-20 106 views
0

私は研究を行っていますが、私の問題の解決策は見つかりませんでした。 Win32で最小化、最大化、および閉じるボタンを無効にする良い方法はありますか?私はそれらがまだ存在し、アニメーション化しているが、敏感ではないことを望む。私はまた、フレームをドラッグしてウィンドウのサイズを変更できるようにしたい。Win32の最小化、最大化、閉じるボタンを無効にする

答えて

1

関連するイベント(WM_SYSCOMMANDおよびWM_CLOSE)をキャプチャして、Windowsに0を返して無視するように指示してください。WM_SYSCOMMANDの場合は、実際にブロックしたいイベント、つまりイベントコードSC_MINIMIZE 、SC_MAXIMIZEなどがあります。他のすべてのものは正常に通過する必要があります。詳細については、https://msdn.microsoft.com/en-us/library/windows/desktop/ms646360%28v=vs.85%29.aspxを参照してください。

ただし、ボタンを指定すると、ユーザーはそのボタンが動作すると考えられます。それらを隠すだけの方がいいかもしれません。これは、SetWindowLong(https://msdn.microsoft.com/en-us/library/ms633591%28v=vs.85%29.aspx)を呼び出して実行できるもので、GWL_STYLE属性を変更して、WS_MINIMIZEBOX、WS_MAXIMIZEBOXなどのフラグを含まないようにします。

+0

回答は質問に答える必要があります。 *「私は100%確実ではない;実験しなければならない」*は答えを構成しない。 – IInspectable

+0

答えがすべてであれば私はそれに沿って行くことができましたが、実際には2つ以上の作業ソリューションを提供しました。不確かさは、過度のアプローチではなく、彼の厳密な嗜好に対するこれら2つの解決策のうちの1つの微調整に関連している。 –

+0

ありがとうございます。最初の解決策は動作しますが、私が期待した方法ではありません。ボタンを無効にすると同時に、フレームをドラッグしてウィンドウのサイズを変更することはできません。または、Windowsのツールバーからウィンドウのサイズを小さくすることはできません。 SetWindowLongをどのように実装すればよいかもよく分かりません。申し訳ありませんまだ私は初心者です。 – hegendroffer

関連する問題