2010-05-09 41 views
10

當我調整我的窗口大小時,我想告訴我的程序的另一部分,我的窗口已更改大小。我上MSDN讀到:捕獲最後一個WM_SIZE

WM尺寸消息
其大小已改變後的WM SIZE消息被髮送到的窗口。

但是,即使拖動,我也會收到WM_SIZE。 我注意到,當我的窗口調整大小時,還會發送WM_SIZING消息。目前我沒有看到WM_SIZE和WM_SIZING之間的區別。

有沒有什麼方法可以捕獲最後的WM_SIZE消息,至於不是「垃圾郵件」我的程序調整大小的消息?

回答

17

當你開始拖動一個窗口時,系統進入一個模態移動/調整大小循環;它不會返回到您自己的消息循環,直到拖動操作完成。您仍然獲得WM_SIZE,因爲它直接發送到窗口過程,但它不會流經您自己的消息循環。

在這種模態拖動動作開始時,系統將WM_ENTERSIZEMOVE發送到您的窗口過程。當您釋放鼠標按鈕時,您的應用程序將獲得WM_EXITSIZEMOVE。這可能是你想觸發的信息。

+0

說如果我調整了很多,我需要捕捉所有這些尺寸。我使用哪條消息? – bluejamesbond 2013-12-18 18:44:10

+0

@ mk1:使用WM_SIZE – dns 2014-01-08 07:53:16