АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Используемые типы данных и структуры Windows

Читайте также:
  1. II. Типичные структуры и границы
  2. III. Анализ результатов психологического анализа 1 и 2 периодов деятельности привел к следующему пониманию обобщенной структуры состояния психологической готовности.
  3. Text B: «WINDOWS 95»
  4. Windows
  5. Windows 95.
  6. Windows 9x/NT
  7. Абсолютные и относительные показатели изменения структуры
  8. Абсолютные и относительные показатели изменения структуры
  9. Абстрактные структуры данных
  10. Автоматизированная система обработки данных правовой статистики
  11. Авторское право - правовое положение авторов и созданных их творческим трудом произведений литературы, науки и искусства.
  12. Адаптивные и механистические организационные структуры
Тип данных Назначение
HANDLE 32-разрядное беззнаковое целое, используемое как описатель
HWND 32-разрядное беззнаковое целое, используемое как описатель окна
HDC Описатель контекста устройства
LONG 32-разрядное целое со знаком
LPSTR Линейный 32-разрядный указатель
NULL Целочисленный ноль, используемый для задания параметров функций
UINT Новый тип данных Win32, который автоматически приводит wParam к 16-разрядному значению для приложений Windows 3-х и к 32-разрядному значению для приложений Win32
WCHAR 16-разрядный символ UNICODE для представления символа любого известного языка

 

 

Структура Использование
MSG Задает параметры сообщения ввода
PAINTSTRUCT Структура, используемая при рисовании окна
RECT Прямоугольник
WNDCLASS Класс окна

 

При программировании для 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.

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

При регистрации класса окна в нем задаются наиболее общие свойства тех оконных объектов, которые будут созданы на основе данного класса, и сведения о которые необходимы для системы.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)