
- •Министерство образования и науки Российской Федерации
- •Лекция 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. Трансляция с языков программирования Сущность трансляции. Компиляция и интерпретация
- •Фазы трансляции и выполнения программы
- •Препроцессор
- •Трансляция и ее фазы
- •Модульное программирование, компоновка
- •Структура транслятора
Активное окно
Активное окно(active window) - это окно верхнего уровня, с которым пользователь работает в данный момент. Чтобы пользователь мог легко определить активное окно, Windows помещает его на вершину Z-порядка и изменяет цвет его заголовка и рамки на цвет, который определен системой для активного окна. Только окно верхнего уровня может быть активным окном. Когда пользователь работает с дочерним окном, Windows активизирует родительское окно верхнего уровня, связанное с этим дочерним окном.
Только одно окно верхнего уровня может быть активным в каждый момент времени. Пользователь может активизировать окно верхнего уровня щелчком мыши (щелкнув на само окно или на одно из его дочерних окон) или с помощью комбинаций клавиш ALT+ESC или ALT+TAB. Приложение активизирует окно верхнего уровня, используя функцию SetActiveWindow(). Ряд других функций может заставить Windows активизировать другое окно верхнего уровня. К этим функциям относятся:SetWindowPos(), DeferWindowPos(), SetWindowPlacement()иDestroyWindow(). Хотя приложение может активизировать другое окно верхнего уровня в любое время, оно должно делать это только в ответ на действия пользователя, чтобы избежать путаницы. Приложение использует функциюGetActiveWindow(), чтобы получить дескриптор активного окна.
Когда активность переходит от окна одного приложения к окну другого приложения, Windows посылает сообщение WM_ACTIVATEAPP обоим приложениям, уведомляя их об изменении. Когда активность переходит к другому окну того же приложения, Windows посылает обоим окнам сообщение WM_ACTIVATE.
Видимость
Окно может быть видимым(visible) илискрытым(hidden). Windows отображает на экране только видимые окна. Если окно является видимым, пользователь может передавать ему входные данные и видеть данные, выводимые окном. Скрытое окно является заблокированным. Скрытое окно может обрабатывать сообщения, полученные от Windows или от других окон, но не может обрабатывать входные данные, полученные от пользователя, а также выводить данные. Приложение определяет, будет ли окно видимым, при создании окна. Позже приложение может изменить статус видимости существующего окна.
Окно является видимым, когда для него установлен стиль WS_VISIBLE. По умолчанию функция CreateWindowEx()создает скрытое окно, если приложение не определяет для окна стиль WS_VISIBLE. Как правило, приложение устанавливает стиль WS_VISIBLE, когда окно уже создано, чтобы скрыть подробности процесса создания от пользователя. Например, приложение может оставить новое окно скрытым на время настройки внешнего вида окна. Если стиль WS_VISIBLE определен вCreateWindowEx(), Windows посылает окну сообщение WM_SHOWWINDOW после его создания, но до его отображения.
Приложение может выяснить, является ли окно видимым, используя функцию IsWindowVisible(). Приложение может сделать окно видимым или скрыть его с помощью функцийShowWindow(),SetWindowPos(), DeferWindowPos()илиSetWindowPlacement(). Эти функции изменяют видимость окна, устанавливая или удаляя стиль WS_VISIBLE. Они также посылают окну сообщение WM_SHOWWINDOW перед перед тем как скрыть его или сделать видимым.
Когда окно-владелец свернуто, Windows автоматически скрывает принадлежащие ему окна. Точно так же, когда окно-владелец восстанавливается, Windows автоматически показывает принадлежащие ему окна. В обоих случаях Windows посылает сообщение WM_SHOWWINDOW находящимся в собственности окнам перед тем как скрыть или показать их. Иногда приложению нужно скрыть находящиеся в собственности окна так, чтобы окно-владелец осталось видимым. В этом случае приложение может использовать функцию ShowOwnedPopups(). Эта функция устанавливает или удаляет стиль WS_VISIBLE для всех находящихся в собственности окон и посылает им сообщение WM_SHOWWINDOW перед тем как скрыть или показать их. Если окно-владелец скрывается, то это не изменяет состояние видимости принадлежащих ему окон.
Когда родительское окно является видимым, все его дочерние окна также являются видимыми. Точно так же, когда родительское окно скрыто, его дочерние окна также скрыты. Сворачивание родительского окна не влияет на состояние видимости дочерних окон; то есть дочерние окна сворачиваются вместе с родителем, но стиль WS_VISIBLE для них не изменяется.
Даже если окно имеет стиль WS_VISIBLE, пользователь может не увидеть его на экране, если другие окна полностью закрывают его или оно было перемещено за пределы экрана. Кроме того, видимое дочернее окно может быть отсечено по правилам его взаимоотношений с родителем. Если родитель не является видимым, дочернее окно также не будет видимым. Если родительское окно перемещено за пределы экрана, дочернее окно также будет перемещено, потому что оно отображается относительно верхнего левого угла родителя. Например, пользователь может переместить родительское окно далеко за пределы экрана так, что дочернее окно не будет видно, не смотря на то, что и дочернее окно, и его родитель имеют стиль WS_VISIBLE.