Окно. Создание и регистрация класса окна, изменение атрибутов, страница 4

sw_Restore: окно отображается и становится активным. Если окно отображено иконкой или в максимизированном виде, то оно принимает размеры установленные при запуске или с помощью функции SetWindowPos.

sw_Show: окно становится активным и отображается в текущем положении.

sw_ShowMaximized: окно становится активным и отображается в максимизированном виде.

sw_ShowMinimized: окно становится активным и отображается в виде иконки.

sw_ShowMinNoActive: окно отображается в виде иконки.

sw_ShowNA: окно отображается (например, после sw_Hide) в текущем состоянии и положении.

sw_ShowNoActivate: окно отображается в том виде, в каком оно было перед удалением с экрана или превращением в иконку.

sw_ShowNormal: окно отображается и становится активным.

Вызов функции UpdateWindow вызывает перерисовку рабочей области окна. Это происходит посылкой сообщения wm_Paint, которое обрабатывается оконной функцией конкретной прикладной программы или ядром Windows (DefWindowProc).

Для определения размеров различных компонент окна используется функция GetSystemMetrics.

FunctionGetSystemMetrics(lndex: Integer): Integer;

В качестве параметра при вызове этой функции указывается одна из следующих констант:

Размер экрана

sm_CXScreen - ширина экрана

sm_CYScreen - высота экрана

sm_CXFullScreen - ширина экрана в пикселах

sm_CYFullScreen - высота экрана в пикселах

Размер рамки

sm_CXFrame - ширина рамки окна (стиль ws_ThickFrame)

sm_CYFrame - высота рамки экрана (стиль ws_ThickFrame)

sm_CXBorder - ширина рамки окна (стиль ws_Border)

sm_CYBorder - высота рамки окна (стиль ws_Border)

sm_CXDlgFrame - ширина рамки окна (стиль ws_ex_DlgModalFrame или ws_DlgFrame)

sm_CYDlgFrame - высота рамки окна  (стиль ws_ex_DlgModalFrame или ws_DlgFrame)

Размер полосы прокрутки

sm_CXVScrolI - ширина кнопки на вертикальной полосе прокрутки

sm_CYVScroll - высота кнопки на вертикальной полосе прокрутки

sm_CXHScroll - ширина кнопки на горизонтальной полосе прокрутки

sm_CYHScroll - высота кнопки на горизонтальной полосе прокрутки

Рис. 1.    Системные метрики

sin_CXHThumb - ширина бегунка полосы прокрутки

sm_CYVThumb - высота бе1унка полосы прокрутки

Размер компонент окна

sm_CYCaption - высота заголовка окна

sm_CYMenu - высота меню

sm_CXIcon - ширина иконки

sm_CYIcon - высота иконки

sm_CXCursor - ширина курсора

sm_CYCursor - высота курсора

sm_CXSize - ширина кнопки Minimize/Maximize

sm_CYSize - высота кнопки Minimize/Maximize

Перемещение окна

sm_CXMinTrack - минимальная ширина окна при перемещении

sm_CYMinTrack - минимальная высота окна при перемещении

sm_CXMin - минимальная ширина окна

sm_CYMin - минимальная высота окна

Возвращаемое значение содержит величину интересующей метрики.

Задания для самостоятельной работы:

После выполнения каждого задания записывать измененные строки в тетрадь.

  1. В программе WinMin измените тип курсора на:         
  2. Заменить атрибут ws_OverlappedWindow в описании создания окна на ws_Overlapped.
  3. В исходную программу добавить атрибут :

После каждого пункта отправлять программу на выполнение (Run®Run)

-  тонкая рамка (стиль окна);

-  системное меню;

-  горизонтальные и вертикальные полосы прокруток;

-  кнопку максимизации окна и минимизации;

-  возможность изменения размеров окна при помощи манипуляций мышью.

  1. Изменить стандартную иконку окна на иконку  ;  ;  ;  .
  2. Установить начальную позицию верхнего левого угла окна:

x:=600 ; y:=500 ;

x:=700 ; y :=10 ;

x :=10 ; y :=10 ;

  1. Задать координаты верхнего левого угла окна и правого нижнего угла окна:

x:=10 ; y:=50 ;   и   x:=50 ; y:=200 ;