получите последний WM_SIZE

Когда я изменяю размер своего окна, я хочу сказать другой части моей программы, что мое окно изменило размер. Я читал на MSDN что:

Сообщение РАЗМЕРА WM
Сообщение РАЗМЕРА WM отправляется в окно после того, как его размер изменился.

Однако я получаю WM_SIZE, перетаскивая. Я заметил, что существует также сообщение WM_SIZING, которое отправляется, когда мое окно изменяет размер. В данный момент я не вижу различия между WM_SIZE и WM_SIZING.

Есть ли некоторый способ, которым я могу получить самое последнее сообщение WM_SIZE, относительно не "посылают спам", моя программа с изменяют размер сообщений?

10
задан Default 9 May 2010 в 11:23
поделиться

1 ответ

Когда вы начинаете перетаскивать окно, система входит в модальный цикл перемещения / изменения размера; он не возвращается в ваш собственный цикл сообщений, пока действие перетаскивания не будет завершено. Вы по-прежнему получаете WM_SIZE , потому что оно отправляется непосредственно оконной процедуре, но не проходит через ваш собственный цикл сообщений.

В начале такого модального действия перетаскивания система отправляет WM_ENTERSIZEMOVE вашей оконной процедуре. Когда вы отпустите кнопку мыши, ваше приложение получит WM_EXITSIZEMOVE . Вероятно, это сообщение, которое вы хотите вызвать.

18
ответ дан 3 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: