AeroSnap - это просто еще один тип изменения размера, отправляемый вашему приложению оконным менеджером.Таким образом, вы не узнаете, что это была привязка, а не какой-либо другой тип изменения размера.
Лучшее, на что вы можете надеяться, - это обнаружить, что противоположные края были перемещены в ходе события размера.Вам нужно будет проверить, что высота или ширина изменились, чтобы отличить их от события перемещения.
Причина, по которой вам не говорят, что это совсем несложно, заключается в том, что трудно представить, почему приложению будет интересно, каков механизм изменения размера.
Комментариирассказал больше о вашей проблеме.Вы пытаетесь сохранить положение и размер приложения, когда оно закрывается, чтобы вы могли восстановить его после перезапуска.Вы используете GetWindowPlacement()
для этого и обнаружили, что он возвращает неправильную позицию, когда последний размер окна был Aero Snap.
Мое собственное приложение делает то же самое, и я столкнулся с точно таким жепроблема.Решение, которое я использовал, состояло в том, чтобы вызвать GetWindowRect()
вместо GetWindowPlacement()
, чтобы получить положение и размер окна.Вы заявляете, что это вам не помогает, и в этом случае я понятия не имею, что предложить.Должен сказать, мне трудно поверить, что GetWindowRect()
не возвращает правильное окно прямоугольника.