
- •Министерство образования и науки Российской Федерации
- •Лекция 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. Трансляция с языков программирования Сущность трансляции. Компиляция и интерпретация
- •Фазы трансляции и выполнения программы
- •Препроцессор
- •Трансляция и ее фазы
- •Модульное программирование, компоновка
- •Структура транслятора
Расположение, размер и позиция в z-порядке
Каждое окно характеризуется расположением, размером и позицией в Z-порядке. Расположение (location) - это координаты верхнего левого угла окна относительно верхнего левого угла экрана или, в случае дочернего окна, относительно верхнего левого угла клиентской области родителя. Размер (size) окна - его ширина и высота, измеряемые в пикселах. Позиция (position) в Z-порядке - это позиция окна в стеке перекрывающихся окон.
Идентификатор дочернего окна или дескриптор меню
Дочернее окно может иметь идентификатор дочернего окна- уникальное, определяемое приложением значение, ассоциированное с дочерним окном. Идентификаторы дочернего окна особенно полезны в приложениях, которые создают множественные дочерние окна. При создании дочернего окна приложение определяет его идентификатор. После создания окна приложение может изменить этот идентификатор, используя функциюSetWindowLong(), или получить идентификатор с помощью функцииGetWindowLong().
Каждое окно, кроме дочернего, может иметь меню. Приложение получает меню, если предоставляет Windows дескриптор меню или при регистрации класса окна, или при создании окна.
Дескриптор копии приложения
С каждым приложением Win32 связан дескриптор копии приложения (instance handle). Windows предоставляет дескриптор копии приложению, когда оно запускается. Поскольку могут быть запущены несколько копий одного приложения, Windows использует дескрипторы копии приложения внутренне, чтобы отличать одну копию от другой.
Дополнительные данные
Каждое окно может иметь связанные с ним дополнительные данные. При создании окна Windows передает указатель на дополнительные данные функции окна. Функция окна использует эти данные, чтобы инициализировать определяемые приложением переменные.
Дескрипторы окна
После создания окна создающая функция возвращает дескриптор окна, который идентифицирует окно уникальным образом. Приложение использует этот дескриптор в других функциях, чтобы направить их действия на данное окно. Дескриптор окна имеет тип данных HWND; приложение должно использовать этот тип при объявлении переменной, которая содержит дескриптор окна.
В Win32 API есть несколько специальных констант, которые могут заменять дескриптор окна в некоторых функциях. Например, приложение может использовать константу HWND_TOPMOST в функции SendMessageTimeout(), HWND_BROADCAST в функцииSendMessage()или HWND_DESKTOP в функцииMapWindowPoints().
Хотя константа NULL не является дескриптором окна, Вы можете использовать ее в некоторых функциях, чтобы определить, что они не воздействуют ни на какое окно. Например, определяя NULL в качестве параметра hwndParentфункцииCreateWindowEx(), Вы создаете окно, которое не имеет родителя или владельца. Некоторые функции могут возвращать NULL вместо дескриптора, указывая, что данное действие не применяется ни к какому окну.
Приложение может использовать функцию FindWindow(), чтобы выяснить, существует ли в системе окно с указанным именем класса или именем окна. Если такое окно существует,FindWindow()возвращает дескриптор этого окна. Чтобы произвести поиск только среди дочерних окон определенного приложения, используйте функциюFindWindowEx(). ФункцияIsWindow()определяет, идентифицирует ли дескриптор действительное, существующее окно.