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

Комбинированные стили

Ряд наиболее часто используемых комбинаций стилей объединены вместе:

ws_OverlappedWindow := ws_0verlapped or ws_Caption or  ws_SysMenu or

ws_ThickFrame or ws_MinimizeBox or ws_MaximizeBox;

ws_PopupWindow:=

ws_Popup or ws_Borderor

ws_SysMenu;

ws_ChildWindow:= ws_Child;

Параметры Х и У определяют начальную позицию верхнего левого угла окна. В ряде случаев можно использовать значения по умолчанию, предоставляемые ядром Windows - cw_UseDefault.

Параметры Width и Height определяют размеры окна по осям Х и Y соответственно. Значение этих параметров cw_UseDefault указывает на то, что положение и размер окна будут определены Windows.

Параметр WndParent указывает на родительское окно данною окна. Когда у создаваемого окна нет родительского окна, этот параметр равен нулю. При создании дочернего окна этот параметр обязательно должен быть определен.

Параметр Menu определяет меню, используемое данным окном. Меню определяется при создании класса окна. Этот параметр используется только в том случае, если окно должно иметь меню, отличное от определенного в классе окна. Поскольку этим параметром задается ссылка на меню, то меню должно быть загружено из какого-либо ресурса с помощью функции LoadMenu .

Параметр Instance указывает на экземпляр программы. На самом деле экземпляр программы - это ссылка на сегмент данных программы. Этот параметр указывается для того, чтобы оконная функция имела доступ к сегменту данных программы.

Последний параметр функции CreateWindow - Рarат определяет дополнительную информацию, посылаемую через сообщение wm_Create.

Следующий пример демонстрирует создание окна класса 'WINSFR' с заголовком 'System Resources'.

ShWnd:= CreateWindow(WINSFR', 'System Resources',ws_OverlappedWlndow,

cw_UseDefault, 0, cw_UseDefault,cw_UseDefault,0,0,hinstance,Nil);

Функция возвращает ссылку на окно типа HWnd. Эта ссылка затем используется всеми функциями ядра Windows, работающими с этим окном.

Для отображения созданного окна на экране используется функция ShowWindow, а для перерисовки изображения внутри окна функция UpdateWindow. Функция ShowWindow определяет, каким образом окно будет отображаться. При запуске программы ядро Windows передает желаемый режим отображения окна через специальный параметр. Значение этого параметра содержит переменная модуля System - cmdShow. Если этот параметр равен sw_ShowNormal, то окно должно отображаться обычным образом, если же этот параметр равен sw_ShowMinNoActive, то окно должно отображаться иконкой. При нормальном режиме отображения фон окна заполняется шаблоном, указанным в классе окна.

Function ShowWindow(Wnd: HWnd; CmdShow: Integer): Bool;

Функция отображает или делает невидимым указанное в качестве параметра окно. Выполняемые функцией действия определяются значением параметра CmdShow. Возвращаемое функцией значение содержит предыдущее состояние окна. Если это значение не равно нулю, значит окно было отображено на экране перед вызовом функции, если возвращаемое значение равно нулю - окно было невидимым.

Procedure UpdateWlndow(Wnd: HWnd):

Функция вызывает перерисовку рабочей области указанного окна путем посылки этому окну сообщения wm_Paint. Это сообщение посылается оконной функции напрямую, минуя очередь прикладной программы. Если рабочая область окна не содержит информации - сообщение не посылается.

Режим отображения окна (иконкой или обычным окном) задается при запуске программы пользователем. Запуск по команде меню Load предполагает отображение иконкой, а по команде Run - обычным окном.

РЕЖИМЫ ОТОБРАЖЕНИЯ ОКНА:

sw_Hide: окно становится невидимым (часто используется приложениями не требующими отображенияинформации в свое окно).

sw_Minimize: окно отображается иконкой.