
- •Министерство образования и науки Российской Федерации
- •Лекция 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. Трансляция с языков программирования Сущность трансляции. Компиляция и интерпретация
- •Фазы трансляции и выполнения программы
- •Препроцессор
- •Трансляция и ее фазы
- •Модульное программирование, компоновка
- •Структура транслятора
Размер окна
Размер окна (высота и ширина) задаются в пикселах. Окно может иметь нулевую ширину или высоту. Если приложение устанавливает в ноль высоту и ширину окна, то Windows приравнивает размер окна заданному по умолчанию минимальному размеру окна. Для того, чтобы узнать, какой минимальный размер окна задан по умолчанию, приложение может использовать функцию GetSystemMetrics() с флагами SM_CXMIN и SM_CYMIN.
Иногда возникает необходимость создать окно с клиентской областью заданного размера. Функции AdjustWindowRect() и AdjustWindowRectEx() позволяют вычислить требуемый размер окна, имеющего клиентскую область нужного размера. Приложение может передать вычисленный размер функции CreateWindowEx().
Приложение может увеличить окно до очень большого размера, однако, не следует задавать окну размер, больший, чем размер экрана. В связи с этим прежде чем устанавливать размер окна приложение должно узнать ширину и высоту экрана с помощью функции GetSystemMetrics() с флагами SM_CXSCREEN и SM_CYSCREEN.
Позиция окна
Позиция окна определяется координатами его верхнего левого угла. Эти координаты, которые иногда называют координатами окна, всегда задаются относительно верхнего левого угла экрана, а для дочерних окон - относительно верхнего левого угла клиентской области родительского окна.
Функция WindowFromPoint() позволяет получить дескриптор окна, занимающего определенную точку экрана. Аналогично функции ChildWindowFromPoint() и ChildWindowFromPointEx() позволяют получить дескриптор дочернего окна, занимающего определенную точку клиентской области родительского окна. При этом функция ChildWindowFromPointEx() может игнорировать невидимые, заблокированные и прозрачные дочерние окна, а функция ChildWindowFromPoint() не может.
Размер и позиция по умолчанию
Приложение может позволить Windows вычислять начальный размер или позицию окна верхнего уровня, задавая константу CW_USEDEFAULT в качестве параметра функции CreateWindowEx(). Если приложение устанавливает координаты окна как CW_USEDEFAULT, и оно не создало к этому моменту никаких других окон верхнего уровня, Windows устанавливает позицию нового окна относительно верхнего левого угла экрана. Если данное приложение уже создавало окна верхнего уровня, Windows устанавливает позицию нового окна относительно позиции последнего созданного приложением окна верхнего уровня. Если ширина и высота окна установлены как CW_USEDEFAULT, Windows самостоятельно вычисляет размер нового окна. Если приложение уже создало другие окна верхнего уровня, размер нового окна основывается на размере последнего созданного приложением окна верхнего уровня.
Если константа CW_USEDEFAULT указывается при создании дочернего или временного окна, Windows приравнивает размер окна заданному по умолчанию минимальному размеру окна.
Отслеживание размера окна (Tracking size)
Windows устанавливает максимальный и минимальный размер для окна, которое имеет стиль WS_THICKFRAME (такое окно имеет рамку, позволяющую изменять размер окна). То есть существуют минимальный и максимальный размеры окна (minimum tracking size, maximum tracking size), которые пользователь может установить для окна, перетаскивая его рамку с помощью мыши. Минимальный и максимальный размеры окна устанавливаются системой, когда Windows создает окно. Приложение может получить значения по умолчанию и переписать их, обрабатывая сообщение WM_GETMINMAXINFO.