В настоящее время я работаю над фрагментом кода, чтобы обойти модальные циклы для перемещения и изменения размера Windows путем эффективной повторной реализации DefWindowProc для этого процесса.
Первая загвоздка, с которой я столкнулся, связана с MINMAXINFO. Похоже, что Windows заполняет это значениями по умолчанию перед отправкой сообщения в WindowProc, поэтому простая отправка сообщения в окно, которое не переопределяет значения, не принесет пользы. Поняв, что это не так просто, как дать ему размер окна рабочего стола для максимума и нули для минимума, я проверил, как ReactOS делает это в их источнике, и … ну, я не понимаю, почему они делают что они делают при расчете.
В частности, они предпочитают отменять стиль WS_BORDER при вызове AdjustWindowRectEx. Их использование переменных с именами «xinc» и «yinc» также кажется мне необычным.
В общем, я надеюсь, что кто-то, кто работал с кодом (или MINMAXINFO в целом), сможет объяснить, что мне не хватает.ReactOS: WinPosGetMinMaxInfo
ptMaxSize
значения в MINMAXINFO
структура — это не максимальный размер, на который вы можете перетащить размер, а размер, который будет на самом деле развернут. Когда окно развернуто, толстая граница удаляется (поскольку вы больше не хотите, чтобы пользователь захватывал границу и пытался изменить ее размер).
Убедитесь, что вы прочитали все детали в объяснении значений для MINMAXINFO
.
Других решений пока нет …