wm-help.net -> Электронная библиотека -> Delphi -> Вопросы и Ответы по Delphi -> Вопрос и Ответ 33 -> Версия для печати

Вопрос и Ответ 33

Вопрос и Ответ 33

Вопросы и Ответы


      33. Существет ли способ ограничения максимального и минимального размера окна?

      Перед изменением размера окна Windows посылает сообщение wm_GetMinMaxInfo, перехватив которое, можно устанавливать необходимые размеры окна.

      Ограничение на размеры окна содержатся в структуре типа TMinMaxInfo. Для установки новых ограничений достаточно изменить соответствующие значения. В таблице описаны используемые поля данной структуры:

      Поле

      Описание

      ptMaxSize Размер окна при его максимизации.
      ptMaxPosition Положение левого верхнего угла окна при его максимизации.
      ptMaxTrackSize Максимальный размер окна при увеличении его размеров.
      ptMinTrackSize Минимальный размер окна при уменьшении его размеров.

      Пример:

      ............

      public

        ............
        PROCEDURE WMGetMinMaxInfo(VAR M: TWMGetMinMaxInfo); MESSAGE WM_GetMinMaxInfo;

      end;

      ............

      {Установка новых ограничений}
      PROCEDURE TForm1.WMGetMinMaxInfo(VAR M: TWMGetMinMaxInfo);
      BEGIN

        {Выполнение предварительно определенного метода}
        inherited;
        {координата X}
        M.MinMaxInfo^.PTMaxSize.X := 400;
        M.MinMaxInfo^.PTMaxPosition.X := 100;
        M.MinMaxInfo^.PTMaxTrackSize.X := 500;
        M.MinMaxInfo^.PTMinTrackSize.X := 300;
        {координата Y}
        M.MinMaxInfo^.PTMaxSize.Y := 250;
        M.MinMaxInfo^.PTMaxPosition.Y := 100;
        M.MinMaxInfo^.PTMaxTrackSize.Y := 300;
        M.MinMaxInfo^.PTMinTrackSize.Y := 200;

      END;

      ............


...предыдущая страница следующая...
оглавление

Rambler's Top100