- ベストアンサー
ウインドウを最小化したとき
ウインドウを最小化しようとしたとき、 WM_SYSCOMMANDのSC_MINIMIZEが送られますが 最小化のアニメーションが完了したタイミング で処理を行いたいのですが可能でしょうか? 可能だとするとどのような方法をとるのはよいかも 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>そこまでシビアなところでしたら、 >SetWindowsHookExでWH_CALLWNDPROCRETかな? よく考えるとそこまではいらないか。 DefWindowProc()にわたしてるんですよね? WM_SYSCOMMAND。 ってことは、DefWindowProc()が制御を戻した後にチェックすればいいかと。
その他の回答 (2)
- taka_tetsu
- ベストアンサー率65% (1020/1553)
そこまでシビアなところでしたら、 SetWindowsHookExでWH_CALLWNDPROCRETかな? http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpipc/html/_win32_setwindowshookex.asp
お礼
処理後のメッセージのみの受け取りもできるんですね。 参考になりました。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
WM_ACTIVATEかな? VisualStudioならSpy++でみてればすぐわかるかと。
お礼
ご回答ありがとうございます。 WM_ACTIVATEだと(WM_ACTIVATEAPPも)アニメーションが終了する前 に受け取ってしまいます。 アニメーションが終了するタイミングですが spy++でみるとWM_SYSCOMMANDのSC_MINIMIZE P(ポスト)→S(送出)→R(送出したメッセージの戻り値)を最後にアニメーションが終了します。 WM_SYSCOMMANDのR(送出したメッセージの戻り値)のタイミングを検出すれば いいのかと思うのですが、その方法がわかりません。
お礼
おっしゃるとおりでした。 LRESULT ret = DefWindowProc( hWnd , msg , wp , lp ); の後に処理を加えただけで、できました。 有難うございました。