
- •Министерство образования и науки Российской Федерации
- •Лекция 1. Введение.
- •Лекция 2. Структура подсистемы обмена с ву
- •Лекция 3. Регистры ву
- •3.1. Виды регистров внешних устройств
- •3.2. Виды адресации регистров ву
- •Лекция 4. Алгоритм обмена без прерываний
- •37Bh – не используется
- •Лекция 5. Прерывания
- •5.1. Механизм прерываний
- •5.2. Таблица векторов прерываний
- •Лекция 6. Изменения установок обработки прерываний
- •6.1. Маскирование прерываний
- •6.2. Изменение таблицы векторов прерываний
- •6.3. Обработчики прерываний
- •Лекция 7. Аппаратные прерывания
- •Лекция 8. Дисковые системы (Часть 1) Организация магнитного диска
- •Лекция 9. Дисковые системы (Часть 2) Функции bios для работы с дисками
- •Инициализация контроллера нмд
- •Лекция 10. Файловые системы (Часть 1)
- •Организация логического диска
- •Лекция 11. Файловые системы (Часть 2)
- •Файловые системы Windows
- •Лекция 12. Файловая системаntfs Главная файловая таблица
- •Последовательность обновления
- •Атрибуты
- •Типы атрибутов
- •Лекция 13. Атрибуты ntfs
- •Списки отрезков
- •Лекция 14. Анализ и восстановление файловой системы
- •Лекция 15. Управление памятью
- •Типы адресов
- •Методы распределения памяти без использования дискового пространства
- •Лекция 16. Виртуальная память
- •Лекция 17. Виртуальная память (продолжение)
- •Лекция 18. Иерархия запоминающих устройств
- •Лекция 19. Управление вычислительными процессами
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Лекция 20. Синхронизация и взаимодействие процессов
- •V(b); /* Выход из критической секции */
- •Лекция 21. Архитектура драйвера файловой системы
- •Локальные fsd
- •Удаленные fsd
- •Работа файловой системы
- •Явный файловый ввод-вывод
- •Подсистема отложенной записи
- •Поток, выполняющий опережающее чтение
- •Драйверы фильтров файловой системы
- •Лекция 22. Windows api
- •Windows api— набор функций операционной системы
- •Лекция 23. WindowsApi(продолжение)
- •Окно рабочего стола
- •Приложение Windows
- •Компоненты окна приложения
- •Создание окна
- •Атрибуты окна
- •Класс окна
- •Имя окна
- •Стиль окна
- •Родитель или владелец окна
- •Расположение, размер и позиция в z-порядке
- •Идентификатор дочернего окна или дескриптор меню
- •Дескриптор копии приложения
- •Дополнительные данные
- •Дескрипторы окна
- •Создание главного окна
- •Сообщения, посылаемые при создании окна
- •Многопоточные приложения
- •Общие стили окна
- •Позиционирование
- •Взаимоотношения с родительским окном
- •Рамка окна
- •Компоненты неклиентской области окна
- •Заблокированное окно
- •Окна переднего плана и фоновые окна
- •Активное окно
- •Видимость
- •Свернутые, развернутые и восстановленные окна
- •Размер и позиция окна
- •Размер окна
- •Позиция окна
- •Размер и позиция по умолчанию
- •Системные команды
- •Сообщения, связанные с размером и позицией окна
- •Уничтожение окна
- •Как создать главное окно
- •Работа с дочерними окнами
- •Как уничтожить окно
- •Лекция 24. Ловушки сообщений (Хуки)
- •Лекция 25. Трансляция с языков программирования Сущность трансляции. Компиляция и интерпретация
- •Фазы трансляции и выполнения программы
- •Препроцессор
- •Трансляция и ее фазы
- •Модульное программирование, компоновка
- •Структура транслятора
Создание окна
Приложение создает свои окна (в том числе главное окно), используя функцию CreateWindow()илиCreateWindowEx()и предоставляя Windows информацию, которая требуется для определения атрибутов окна.CreateWindowEx()имеет параметрdwExStyle, который отсутствует у функцииCreateWindow(); в остальном эти функции идентичны. ФактическиCreateWindow()просто вызываетCreateWindowEx()с параметромdwExStyle, равным нулю.
Win32 API поддерживает дополнительные функции, в том числе DialogBox(),CreateDialog(), иMessageBox(), необходимые для создания окон специального назначения таких, как диалоговые окна и окна сообщений.
Атрибуты окна
При создании окна приложение должно предоставить Windows следующую информацию:
Класс окна (Window class) Имя окна (Window name) Стиль окна (Window style) Родитель или владелец окна (Parent or owner window) Размер (Size) Расположение (Location) Позиция (Position) Идентификатор дочернего окна или дескриптор меню (Child-window identifier or menu handle) Дескриптор копии приложения (Instance handle) Дополнительные данные (Creation data)
Класс окна
Каждое окно принадлежит какому-либо классу окна. Приложение должно зарегистрировать класс окна до создания любых окон этого класса. Класс окна определяет большинство аспектов вида и поведения окна. Главный компонент класса окна - функция окна - функция, которая получает и обрабатывает все входные данные и запросы, посланные окну. Windows поддерживает входные данные и запросы в форме сообщений.
Имя окна
Окно может иметь имя, которое представляет собой текстовую строку, идентифицирующую окно для пользователя. Главное окно, диалоговое окно или окно сообщений обычно отображают свое имя в заголовке окна, если он присутствует. Для контрола способ отображения имени окна зависит от класса, к которому относится данный контрол. Например, кнопка и поле редактирования (edit control) отображают свое имя в пределах прямоугольника, занимаемого контролом. Список (list box) и раскрывающийся список (combo box) не отображают свое имя.
С помощью функции SetWindowText()приложение может изменить имя окна после его создания. Используя функцииGetWindowTextLength()иGetWindowText(), можно получить текущий текст названия окна.
Стиль окна
Каждое окно имеет один или более стилей окна. Стиль окна - это именованная константа, которая определяет особенности вида и поведения окна, которые не определены классом окна. Например, класс SCROLLBAR создает полосу прокрутки, но стили SBS_HORZ, и SBS_VERT определяют, создается ли горизонтальная или вертикальная полоса прокрутки. Несколько стилей окна относятся ко всем окнам, но большинство относятся к окнам определенных классов. За интерпретацию стилей окна отвечает Windows и, в некоторой степени, функция окна данного класса.
Родитель или владелец окна
Окно может иметь родительское окно. Окно, которое имеет родителя, называется дочерним окном.Родительское окнопредоставляет систему координат, используемую для позиционирования дочернего окна. Наличие родительского окна воздействует на вид и поведение окна; например, дочернее окно отсекается так, чтобы никакая его часть не могла появиться за пределами родительского окна. Окно, которое не имеет родителя, или чей родитель - окно рабочего стола (desktop window), называетсяокном верхнего уровня(top-level window). Приложение использует функциюEnumWindows(), чтобы получить дескриптор каждого своего окна верхнего уровня.EnumWindows()передает поочередно дескриптор каждого окна верхнего уровня определенной приложением функции обратного вызоваEnumWindowsProc().
Окно может владеть другим окном или принадлежать другому окну. Окно, принадлежащее другому окну, всегда появляется поверх окна-владельца (но может выходить за его пределы), становится невидимым, когда окно-владелец сворачивается, и уничтожается, когда уничтожается окно-владелец.