Смекни!
smekni.com

Расчет и анализ потерь активной мощности (стр. 8 из 16)

3. Особенности windows–программирования

Windows 95 – одна из последних версий графической операционной системы (ОС) Windows, представленной впервые в ноябре 1985 года для использования на компьютерах типа IBM PC и совместимых с ним. За последнее десятилетие ОС Windows почти полностью вытеснила всех конкурентов и стала фактически эталоном ОС для персональных компьютеров.

В Windows 95 объединены средства, имеющиеся в более ранних ОС. К ним также добавлены новые средства, позволяющие более быстро выполнять большие объемы работ.

Программирование под Windows является одним из видов объектно-ориентированного программирования (ООП). В основе ОС Windows лежит ее способность отображать информацию, используя для этого окна. Окно – это прямоугольная область на экране, оно получает информацию от клавиатуры или мыши пользователя и выводит графическую информацию на своей поверхности (можно одновременно открыть несколько окон, чтобы одновременно работать с несколькими приложениями, тем самым увеличив производительность компьютера). Пользователь рассматривает окна на экране в качестве объектов и непосредственно взаимодействует с этими объектами.

Самой примечательной особенностью Windows является графический интерфейс пользователя. Дисплей сам становится источником, откуда в машину вводится информация. Он показывает различные графические объекты в виде картинок и конструкций для ввода информации (таких, как кнопки или полосы прокрутки). Используя клавиатуру или мышь, пользователь может непосредственно манипулировать этими объектами на экране. Графический интерфейс пользователя Windows существенно облегчает диалог с персональным компьютером.

ОС Windows позволяет создавать т.н. «дочерние окна управления». Дочернее окно обрабатывает сообщения мыши и клавиатуры и извещает родительское окно о том, что состояние дочернего окна изменилось. Оно инкапсулирует особые действия, связанные с графическим представлением окна на экране, реакцией на пользовательский ввод, и извещения другого окна при вводе важной информации. Можно создавать свои собственные дочерние окна управления, но есть также возможность использовать преимущества нескольких уже определенных классов окна (и оконных процедур), с помощью которых программа может создавать стандартные дочерние окна управления. Windows содержит следующие предопределенные классы окон: кнопка, радиопереключатель, флажок, окно редактирования, окно списка, окно комбинированного списка, статическое окно, полоса прокрутки.

Для упрощения создания Windows‑программ с интерфейсом пользователя, соответствующим интерфейсу оболочки системы, корпорация Microsoft разработала библиотеку органов управления общего пользования (common control library). Она содержит 17 элементов, которые условно можно разделить на четыре категории: органы управления главного окна (панель инструментов, окно подсказки, строка состояния), составные диалоговые органы управления (страница свойств, набор страниц свойств), органы управления Windows Explorer (дерево просмотра, список просмотра) и другие органы управления (например, горячая клавиша, индикатор процесса, окно с движком для выбора значения из диапазона). Как дочерние окна управления, так и органы управления общего пользования часто используются при создании Windows‑приложений.

Важной особенностью OC Windows является многозадачность. Под Windows 95 любая программа становится резидентной и несколько программ одновременно могут иметь вывод на экран и выполняться. Кроме того, программы сами по себе могут иметь несколько потоков выполнения, которые, как кажется, выполняются параллельно. В основе этого принципа лежит использование ОС аппаратного таймера для распределения процессорного времени между одновременно выполняемыми процессами. [4]

К основным преимуществам ОС Windows 95 относятся следующие:

à улучшенный интерфейс;

à более простое управление файлами, включая поддержку сетевых связей и длинных имен файлов;

à технология Plug and Play автоматически определяет и настраивает дополнительные устройства, подключаемые к компьютеру;

à 32 – битная многозадачная среда позволяет одновременно работать нескольким программам;

à улучшенные средства поиска;

à улучшенная поддержка мультимедиа;

à расширенные возможности установления связей, включая электронную почту, факсы, электронные доски объявлений, Internet;

à управление процессом печати документов.

Рассмотрим более подробно процесс создания прикладной программы Windows.

3.1 Главное окно

Прикладная программа Windows – это любая программа, которая специально написана для работы в операционной среде Windows и использующая интерфейс прикладной программы (API).

Прикладная программа Windows имеет следующие основные компоненты: основную функцию WinMain; т.н. «оконную процедуру» – функцию WndProc.

WinMain – это точка входа в программу. В любой программе для Windows имеется функция WinMain, она определяется следующим образом:

integer function WinMain (hInstance, hPrevInstance, &

lpszCmdLine, nCmdShow).

hInstance – дескриптор (описатель, хэндл) экземпляра. Это уникальное число, идентифицирующее программу, когда она работает под Windows;

hPrevInstance – дескриптор предыдущего экземпляра программы. Под Windows 95 этот параметр всегда NULL;

lpszCmdLine – указатель на оканчивающуюся нулем строку, в которой содержатся любые параметры, переданные в программу из командной строки.

nCmdShow – число, показывающее, каким должно быть выведено на экран окно в начальный момент.

В большинстве случаев эта функция делает следующее:

à вызывает функции инициализации, которые регистрируют классы окон, создают окна и выполняют другие инициализации;

à запускает цикл обработки сообщений из очереди прикладной программы;

à завершает работу программы.

WndProc – это функция многократного вызова, т.е. функция программы, которую вызывает Windows. Сама программа никогда не вызывает эту функцию напрямую. Каждое окно имеет соответствующую оконную процедуру. Оконная процедура – это способ инкапсулирования кода, отвечающего за ввод информации и за вывод информации на экран, что реализуется путем посылки «сообщений» окну.

В процессе создания главного окна программы условно можно выделить четыре этапа:

1) регистрация класса главного окна;

2) создание главного окна;

3) отображение и корректировка главного окна;

4) организация цикла сообщений.

Рассмотрим подробнее каждый из этапов.

Регистрация класса окна.

Окно всегда создается на основе класса окна. Класс окна идентифицирует оконную процедуру, которая выполняет процесс обработки сообщений, поступающих окну, а также определяет некоторые атрибуты окна, уникальные для него, такие, например, как форма курсора и имя меню окна. На основе одного класса окна можно создать несколько окон.

Перед созданием окна для программы необходимо зарегистрировать класс окна путем вызова функции Rеgistelаss:

ret = Rеgistelаss (lpwc).

ret – целочисленная переменная, содержащая возвращаемое функцией значение;

lpwc – указатель на структуру типа T_WNDCLASS, содержащую в своих двенадцати полях информацию об имени, атрибутах, ресурсах и функции окна данного класса.

Заполнение структуры и регистрация класса окна производятся в WinMain. Если регистрация прошла успешно, функция возвращает число, идентифицирующее регистрируемый класс. В противном случае она возвращает ноль.

Создание окна.

Окно создается с помощью функции СreateWindowEx (она отличается от аналогичной функции CreateWindow возможностью задания «расширенного» стиля окна и наличием параметра, используемого в качестве указателя на какие-то данные, на которые программа в дальнейшем могла бы ссылаться). Эта функция побуждает Windows создать окно, которое имеет указанный тип и принадлежит к определенному классу. Вызов функции СreateWindowEx осуществляется следующим образом:

hWnd = CreateWindowEx (&

INT4 (WS_EX_DLGMODALFRAME), ! «расширенный» стиль окна &

lpszClassName, ! Имя класса окна &

lpszAppName, ! Заголовок главного окна &

INT4 (WS_OVERLAPPEDWINDOW), ! Стиль окна &

0, ! X – координата левого верхнего угла &

0, ! Y – координата верхнего левого угла &

GetSystemMetrics (SM_CXSCREEN) – 32, ! Ширина окна &

GetSystemMetrics (SM_CYSCREEN) – 32, ! Высота окна &

NULL, ! Дескриптор родительского окна &

hMenu, ! Дескриптор меню окна &

hInstance,! Дескриптор экземпляра &

NULL) ! Параметры создания

Параметр с комментарием «имя класса окна» содержит строку, являющуюся именем только что зарегистрированного класса окна («Krs_w»). Т.о., этот параметр связывает окно с классом окна.

«Заголовок главного окна» содержит текст, который появляется в строке заголовка («Компоновщик расчетных схем»).

Окно, созданное программой, является обычным перекрывающимся окном с заголовком, системным меню, главным меню, иконками для сворачивания, разворачивания и закрытия окна справа на строке заголовка и рамкой окна (стандартный стиль окон WS_ОVЕRLАРРЕDWINDOW). Из предлагаемого ОС Windows набора «расширенных» стилей выбран стиль WS_EX_DLGMODALFRAME, добавляющий окну двойную рамку.

Параметр с комментарием «дескриптор родительского окна» устанавливается в NULL, т. к. у нашего окна отсутствует родительское окно. Параметр hMenu содержит дескриптор меню окна. В параметр hInstance помещается дескриптор экземпляра программы, переданный программе в качестве параметра функции WinMain. Параметр с комментарием «параметры создания» при необходимости используется в качестве указателя на какие-нибудь данные, на которые программа в дальнейшем могла бы ссылаться (в рассматриваемой программе такие данные не используются – параметр установлен в NULL).