
- •1. Windows-как объектно-ориентированная операционная система (трпс)
- •2. Общая схема взаимодействия приложения и ядра Windows. (трпс)
- •3. Общая схема Windows приложения. Цикл обработки сообщения, функция окна, ресурсы. (трпс)
- •4. Синхронные и асинхронные Windows сообщения. Сходства и отличия. Области применения. (трпс)
- •5. Классы и стили окон. Иерархия окон. (трпс)
- •6. Особенности отрисовки для Windows приложения. Контекст устройства, недействительная область, обработка сообщений. (трпс)
- •7. Типы клавиатурных сообщений. Особенности обработки. (трпс)
- •8. Типы сообщений от манипулятора мышь. Особенности обработки. (трпс)
- •9. Реализация корпоративной и вытесняющей многозадачности на Windows платформах. (трпс)
- •10. Основные понятия процесса, потока, фибера (трпс)
- •11. Схема создания рабочего потока (трпс)
- •12. Синхронизация потоков, события, критические секции. (трпс)
- •13. Особенности использования памяти на Windows платформах. Проблема ipc (трпс)
- •14. Общая схема печати документов приложением на Windows платформах. (трпс)
- •2 Создание немодального диалога для отмены печати.
- •16. Типы и области применимости dll. Особенности программной реализации. (трпс)
- •17. Наборы символов для Windows платформ. Сходства и отличия. Области применимости. (трпс)
- •18. Типы диалогов для Windows платформ. Сходства и отличия. Особенности реализации. (трпс)
- •Int DialogBox(hinstance hInst,lpctstr pTemplate, hwnd hWndParent, dlgproc pDlgFunc)
- •Int MessageBox(hwnd hWnd, lpctstr szText, lpctstr szCaption, uint uType);
- •If (!IsDialogMessage(hDlgModaless,&msg)){
- •19. Элементы управления. Общая характеристика и области применимости. (трпс)
- •20. Функции crt и функции ядра Windows для работы с файлами. Особенности применения. (трпс)
1. Windows-как объектно-ориентированная операционная система (трпс)
Windows – многозадачная, многопользовательская, объектно-ориентированная, событийная операционная система. Операционные системы Windows имеют единый графический интерфейс, поддерживают обмен данными между приложениями. Исполняемые приложения Windows абсолютно не зависят от особенностей аппаратуры компьютера. Характерно полное использование всех ресурсов.
Система Windows является операционной системой передачи сообщений. В основе системы лежит механизм, транслирующий практически каждое событие – нажатие клавиши, перемещение мыши – в соответствующее сообщение. Приложение Windows построено на основе цикла обработки сообщений. Основополагающий компонент операционной системы – окна. Каждое приложение имеет хотя бы одно окно.
2. Общая схема взаимодействия приложения и ядра Windows. (трпс)
Система Windows является ОС передачи сообщений. В основе лежит механизм, транслирующий практически каждое событие – нажатие клавиши, перемещение мыши, истечение времени таймера – в соответствующее сообщение. Типичное приложение построено на основе цикла обработки сообщений, который принимает эти сообщения и отправляет их к соответствующим функциям – обработчикам сообщений. Хотя сообщения передаются приложениям, они адресованы не им, а другим основополагающим компонентам ОС – окнам.
Существует много разновидностей сообщений, представляющих Windows события на разных уровнях. Каждое простое событие, каждое простое действие посылается в виде сообщения окну для обработки.
Все сообщения состоят из нескольких частей и представляются структурой MSG:
typedef struct tagMSG {
HWND hwnd; // окно, которому предназначено сообщение
UINT message; //сообщение
WPARAM wParam; // информация, относящаяся к сообщению
LPARAM lParam; // дополнительная информация для сообщения
DWORD time; // время отправления сообщения
POINT pt; //координаты мыши
} MSG;
Элемент структуры hwnd однозначно идентифицирует окно, которому посылается это сообщение.
Элемент message идентифицирует само сообщение. Этот элемент принимает любое значение из допустимого диапазона, который описывает сообщения. Для Windows сообщений обычно используются символьные представления, такие как WM_PAINT, WM_TIMER, а не конкретные числовые значения.
Ключевая точка каждого приложения – цикл обработки сообщений.
Функция GetMessage() постоянно просматривает очередь сообщений и, если она пуста, не делает возврата, а передает управление Windows. Приложение находится в состоянии простоя. Но как только в очереди сообщений появляется сообщение, GetMessage() заполняет соответствующие поля структуры MSG, удаляет сообщение из очереди и возвращает ненулевое значение. В этом случае говорят – GetMessage() выбирает сообщение из очереди. После этого, управление передается функции DispatchMessage(&msg), которая пересылает указатель на заполненную ранее структуру MSG обратно ядру Windows. ОС блокирует DispatchMessage() и вызывает оконную функцию с параметрами, соответствующими полям структуры MSG. Функция окна выполняет действия, которые были указаны (или не указаны) для обработки данного сообщения. После этого функция окна возвращает управление Windows, которая делает возврат из DispatchMessage(). Цикл снова повторяется.