Gogic писал(а):Как быть?
Может останавливать курсор через SetCursorPos, или может есть проще варианты?
Разработчикам Windows нужно было бы быть последними недоумками, чтобы не предусмотреть способ задать минимальные и максимальные габариты для ресайзинга окон. Поскольку недоумками они не являются, как минимум в этом вопросе, они, о счастье, предусмотрели такую возможность.
Организовано это так: оконная подсистема «спрашивает» у окна: до каких пор тебя можно растянуть/сжать? Окно отвечает до каких. Собственно, и всё, дальше система сама ограничивает ресайзинг и даже ставит клип-рект на указатель мыши.
Общение оконной подсистемы и окна организовано так: оконная подсистема шлёт окну сообщение WM_GETMINMAXINFO, а окно (вернее его оконная процедура) обрабатывает это сообщения, и в рамках обработки заполняет структуру, ссылку на которую передали.
В норме, поскольку разработчик окна сам пишет оконную процедуру, то никакой проблемы нет. Но VB-исты не пишут оконную процедуру, поэтому им во-первых, надо делать сабклассинг, а во-вторых, они тут обычно всякие ошибки допускают.
Ну и в рамках послесловия. Этот вопрос
столько раз уже обсуждали, что наверное надо банить за игнорирование поиска.