Когда я изменяю размер своего окна, я хочу сказать другой части моей программы, что мое окно изменило размер. Я читал на MSDN что:
Сообщение РАЗМЕРА WM
Сообщение РАЗМЕРА WM отправляется в окно после того, как его размер изменился.
Однако я получаю WM_SIZE, перетаскивая. Я заметил, что существует также сообщение WM_SIZING, которое отправляется, когда мое окно изменяет размер. В данный момент я не вижу различия между WM_SIZE и WM_SIZING.
Есть ли некоторый способ, которым я могу получить самое последнее сообщение WM_SIZE, относительно не "посылают спам", моя программа с изменяют размер сообщений?
Когда вы начинаете перетаскивать окно, система входит в модальный цикл перемещения / изменения размера; он не возвращается в ваш собственный цикл сообщений, пока действие перетаскивания не будет завершено. Вы по-прежнему получаете WM_SIZE
, потому что оно отправляется непосредственно оконной процедуре, но не проходит через ваш собственный цикл сообщений.
В начале такого модального действия перетаскивания система отправляет WM_ENTERSIZEMOVE
вашей оконной процедуре. Когда вы отпустите кнопку мыши, ваше приложение получит WM_EXITSIZEMOVE
. Вероятно, это сообщение, которое вы хотите вызвать.