トップ回答者
SetWindowPos関数の引数に”SWP_NOMOVE | SWP_NOSIZE”を指定したウィンドウがマウス移動できてしまう

質問
回答
すべての返信
-
説明不足でわかりつらく申し訳ありません。
メインウィンドウの「WM_SIZE」「WM_MOVE」にSetWindowPos関数を引数に”SWP_NOMOVE | SWP_NOSIZE”を指定して呼んでいます。
これで、このウィンドウを動かなく&サイズ変更できなくできると思っていたのですが、間違っていますでしょうか?
ちなみに「WM_WINDOWPOSCHANGING」にSetWindowPos関数を引数に”SWP_NOMOVE | SWP_NOSIZE”を指定して呼んでみましたが、ウィンドウは普通に動いていました。
ウィンドウの位置が変えられようとする時に、WM_WINDOWPOSCHANGINGが発生します。このときにLPARAMに格納されているWINDWPOS構造体を編集することで、サイズおよび位置の変更を阻害できます。SetWindowPosを呼び出す必要はありません。
// WM_SIZE/WM_MOVEでSetWindowPosするときの問題は調べていません。
- 回答の候補に設定 星 睦美 2013年7月5日 7:49