|
|||||||||||||||||||||||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Используемые типы данных и структуры Windows
При программировании для Windows всюду используются описатели. Описатель — это уникальный номер, идентифицирующий объекты различных типов: окон, управляющих элементов, меню, значков, кистей и перьев, блоков памяти, устройств вывода и даже экземпляров окон. Каждая копия программы, выполняемая под управлением Windows 95 или Windows NT, называется экземпляром. Поскольку Windows 95 и Windows NT позволяют одновременно выполнять более одного экземпляра приложения, операционная система должна отслеживать все экземпляры. Для этого каждой работающей копии приложения присваивается описатель экземпляра. Приложения Windows 95/Windows NT имеют два общих важных элемента: функцию WinMain() и функцию окна. Главная процедура приложения называется WinMain(). Она служит точкой входа для программы, работающей под Windows 95 и Windows NT, и работает аналогично функции main() в обычной программе на С. Функция окна, которую не следует путать с WinMain(), выполняет особую задачу. Вспомним, что приложение Windows никогда не обращается к функции окна непосредственно. Когда приложению Windows 95 или Windows NT необходимо вызвать функцию окна, оно обращается к системе с запросом на выполнение того или иного действия. Для работы этого механизма все приложения Windows 95 и Windows NT должны иметь оконную функцию обратного вызова, которая регистрируется системой Windows 95 или Windows NT и вызывается, когда над окном производятся какие-либо действия. Простейшая программа для Windows состоит из двух функций: функции WinMain и функции окна или оконной процеуры. Функция WinMain состоит их трех функциональных частей: регистрация класса окна, создания главного окна приложения и цикла обработки сообщений. На некотором псевдоязыке программу для Windows можно записать следующим образом: WinMain(список аргументов) { Создание класса окна Создание экземпляра класса окна Пока не произошло необходимое для выхода событие Выбрать из очереди сообщений очередное сообщение Передать сообщение оконной функции Возврат из программы } WindowsFunction(список аргументов) { Обработать полученное сообщение Возврат } Рассмотрим простейшее приложение Win32: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return 0; }
Это приложение ничего не делает и сразу же прекращает свою работу, возвращая управление OC с кодом возврата 0. WINAPI перед телом функции WinMain указывает компилятору на необходимость сгенерировать перед выполнением этой функции специальный пролог и эпилог необходимый для функции, в которой запускается и завершается программа. Если это слово будет отсутствовать, то программа будет сгенерированна неправильно. Рассмотрим параметры, которые получает приложение от ОС в функции WinMain: lpCmdLine - указатель на командную строку; nCmdShow - код режима начального отображения главного окна приложения; hInstance - дискриптор, ассоцируемый с текущим приложением, некоторые функции API могут потребовать его в качестве параметра. В основном он необходим при работе с ресурсами приложений, организации многозадачности и при создании оконных обьектов; hPrevInstance - параметр для совместимости с предыдущими версиями Win16; в Win32 не имеет никакого значения и всегда равен NULL. Главное окно программы первое появляется и последним исчезает при работе с программой. Другие окна, которые создаются главным окном, взаимодействуют с ним и им же уничтожаются. Прежде чем его создать, необходимо зарегистрировать его класс, при этом имя класса главного окна должно быть уникальным, чтобы не возникало конфликта с классами окон других приложений. При регистрации класса окна в нем задаются наиболее общие свойства тех оконных объектов, которые будут созданы на основе данного класса, и сведения о которые необходимы для системы.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |