WmGetMinMaxInfoで指定した最大サイズで画面が移動する。


にゃ  2006-09-08 22:20:26  No: 23189

MDIのアプリケーションを作成しています。
子画面の最大サイズをWMMINMAXINFOで設定しました。

最大サイズの状態で、
ウィンドウの左端を掴んでサイズ変更すると、
画面が移動してしまいます。
移動させない方法は、ないでしょうか。

宜しくお願いいたします。


にゃん  2006-09-09 18:28:57  No: 23190

レスをいただけないので、詳細を書き込みます。

ウィンドウで、タイトルバーを掴んだときに
WM_MOVEが発生します。
左端と、右上を掴んだときにも
WM_MOVEが発生します。
これを発生させなくするといいと思うのですが、
ご存知の方がいらっしゃったら、レスをお願いします。


sk  2006-09-12 03:02:14  No: 23191

こちらの過去ログですが、
https://www.petitmonte.com/bbs/answers?question_id=1765
にあるように、WM_MOVEは移動開始では受け取れないときがあるので、WM_NCLBUTTONDOWNやWM_NCMOUSEMOVEを捕まえてタイトルバーのドラッグのときにウインドウが最大サイズだったら移動しないようにするのはどうでしょうか。


WM_WINDOWPOSCHANGING  2006-09-13 21:02:49  No: 23192

たぶん、かなりめんどくさいんじゃないかとおもひます。

WM_MINMAXINFOを使わず、WM_WINDOWPOSCHANGING の処理で、
最大・最小サイズ、及び上位置・左位置の調整を行うようにしたら
どうでしょう?
単なるウインドウ移動なのか、サイズ変更を伴う位置移動なのか等、
判断要素は複雑になると思いますが・・・


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

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






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