- •История Windows
- •Windows 1.0
- •Windows 1.3
- •Windows 2.0
- •Windows 3.0
- •Windows 3.1
- •Windows for Workgroups версии 3.11
- •Windows NT
- •Windows 95
- •Windows NT Workstation 4.0 и Windows NT Server 4.0
- •Windows NT 4.0 Server Enterprise Edition
- •Windows 98
- •Windows 98 Second Edition (SE)
- •Windows 2000
- •Windows 98 Millenium Edition (ME)
- •Windows XP
- •Общая архитектура WINDOWS приложения.
- •Каркас приложения
- •Регистрация класса окна
- •Создание окна.
- •Отображение окна.
- •Цикл обработки очереди сообщений.
- •WndProc
- •Обработка сообщений типового приложения.
- •Контрольные вопросы
- •Сообщения
- •Типы сообщений
- •Обработка клавиатурных сообщений
- •Обработка сообщений от мыши
- •Сообщения таймера
- •Контрольные вопросы
- •Организация ввода
- •Разупорядоченный ввод
- •Разделение потоками виртуальных очередей ввода
- •Локальное состояние ввода
- •Ввод с клавиатуры и фокус
- •Управление курсором мыши
- •Контрольные вопросы
- •Окна
- •Окна Windows
- •Иерархия окон
- •Оконная процедура, стандартные оконные процедуры
- •Стиль класса окна
- •Стили окон, окна основных стилей
- •Перекрывающиеся окна
- •Временные окна
- •Дочерние окна
- •Сообщения управления окнами
- •Окна с полосами прокрутки
- •Системные метрики
- •Определение размера окна
- •Определение расположения окна
- •Контрольные вопросы
- •Графический интерфейс устройств(GDI).
- •Создание (получение) контекста устройств.
- •Сохранение контекста устройства.
- •Прямые (отрезки) и кривые
- •Закрашенные области
- •Битовые шаблоны (растровые шаблоны, растровые образы)
- •Текст и шрифты
- •Режимы масштабирования и преобразования
- •Метафайл
- •Регионы
- •Путь
- •Палитры
- •Контрольные вопросы
- •Объекты ядра
- •Что такое объект ядра
- •Учет пользователей объектов ядра
- •Защита
- •Таблица описателей объектов ядра
- •Создание объекта ядра
- •Закрытие объекта ядра
- •Синхронизация объектов
- •Именованные объекты
- •Дублирование описателей объектов
- •Изменение флагов описателя
- •Синхронизация потоков
- •Критическая секция
- •Мьютексы
- •Семафоры
- •События
- •Ожидаемые таймеры
- •Контрольные вопросы
- •Ресурсы Windows приложения
- •Файлы ресурсов приложения
- •Значки (пиктограммы)
- •Курсоры
- •Битовые образы
- •Символьные строки
- •Ресурсы, определяемые пользователем
- •Таблица акселераторов
- •Меню
- •Диалоговые окна
- •Контрольные вопросы
- •Элементы управления
- •Дочерние окна управления
- •Создание дочерних окон
- •Сообщения дочерних окон родительскому окну
- •Сообщения родительского окна дочерним окнам
- •Дочерние окна и фокус ввода
- •Дочерние окна управления и цвет
- •Кнопки различных стилей (класс BUTTON)
- •Нажимаемые кнопки
- •Флажки-переключатели
- •Переключатели
- •Окна групп
- •Кнопки, определяемые пользователем
- •Статические поля (класс static)
- •Текстовые редакторы (класс edit)
- •Списки разных стилей (класс listbox)
- •Комбинированные списки (класс combobox)
- •Полосы прокрутки (класс scrollbar)
- •Контрольные вопросы
- •Расширенные элементы управления
- •Основы общих элементов управления
- •Инициализация библиотеки элементов общего пользования
- •Создание элементов управления общего пользования
- •Посылка сообщений общим элементам управления
- •Уведомляющие сообщения от общих элементов управления
- •Контрольные вопросы
- •Стандартные диалоговые окна.
- •Окна сообщений
- •Диалоговые окна общего пользования
- •Контрольные вопросы
- •Динамически подключаемые библиотеки
- •Создание DLL
- •Проецирование DLL на адресное пространство процесса
- •Функция входа/выхода
- •Функция DllMain и стандартная библиотека С
- •Функция LibEntry
- •Функция LibMain
- •Функция WEP
- •Экспорт функций и переменных из DLL
- •Импорт функций и переменных из DLL
- •Заголовочный файл DLL
- •Разделы в ЕХЕ- и DLL-файлах
- •Контрольные вопросы
- •Файлы, проецируемые в память
- •Контрольные вопросы
- •Классы, определяющие архитектуру приложения
- •Классы приложения и поддержки потоков
- •Классы приложения и потоков
- •Классы фреймов окон
- •Получение информации о приложении
- •Соглашения об именах MFC
- •Включаемые файлы
- •Функция WinMain
- •Класс CWinApp
- •Класс CWnd
- •Класс CFrameWnd
- •Создание главного окна SDI-приложения
- •Примечание
- •Создание главного окна SDI-приложения
- •Создание дочерних окон
- •Ограничение размеров окна
- •Ограничение доступа к окну
- •Создание многодокументных приложений
- •Класс CMDIChildWnd
- •MDI — пример приложения
- •Категории сообщений
- •Карта сообщений
- •Компоненты карты сообщений
- •Класс CCmdTarget
- •Стандартный маршрут команды
- •Команды обновления и класс CCmdlll
- •Функции для работы с сообщениями
- •Основные положения
- •Класс CDocTemplate
- •Класс CSingleDocTemplate
- •Роль фреймов в архитектуре "документ/представление"
- •Документ и его представления
- •Документы
- •Класс CDocument
- •Класс CArchive
- •Представления
- •Класс CView
- •Панели элементов управления
- •Класс CStatusBar
- •Класс CStatusBarCtrl
- •Класс CDialogBar
- •ControlBars — пример приложения
- •НЕКОТОРЫЕ КЛАССЫ MFC
- •Класс CObject - основной класс MFC
- •Конструкторы класса
- •Оператор присваивания
- •Диагностика
- •Проверка целостности объектов класса
- •Получение дампа объекта класса
- •Сохранение и восстановление состояния объекта
- •Метод IsSerializable
- •Виртуальный метод Serialize
- •Информация о классе
- •Виртуальный метод GetRuntimeClass
- •Метод IsKindOf
- •Класс CPoint - точка на плоскости
- •Класс CSize - относительные координаты
- •Класс CString - текстовые строки
- •Конструктор класса
- •Коллекции
- •Массивы - шаблон CArray
- •Списки - шаблон CList
- •Словари - шаблон CMap
- •Класс CTime - дата и время
- •Файловая система - класс CFile
- •Открытие и создание файлов
- •Идентификатор открытого файла
- •Закрытие файлов
- •Чтение и запись файлов
- •Метод Flush
- •Операции с файлами
- •Блокировка
- •Позиционирование
- •Характеристики открытого файла
- •Файловая система - классы CMemFile и CStdioFile
- •Модификация класса CMemFile
- •Файловая система - класс CStdioFile
- •Запись и восстановление объектов
- •Запись в архивный файл
- •Чтение из архивного файла
- •Исключения - класс CException
- •Класс CException
- •Класс CMemoryException
- •Класс CFileException
- •Приложение Except
- •Класс CArchiveException
- •Класс CNotSupportedException
- •Класс CResourceException
- •Класс CUserException
История Windows
Вскоре после появления в середине 1981 года IBM PC стало очевидно, что
господствующей операционной системой для PC (включая совместимые) должна стать MS-DOS, что означает Microsoft Disk Operating System. Ранние версии MS-DOS
обеспечивали для пользователя интерфейс командной строки, отображая такие команды как DIR и TYPE, которые могли загружать выполняемые программы в оперативную память и предлагали для этих программ определенный интерфейс для доступа к файлам, считывания информации с клавиатуры, и отображения на принтере и на экране дисплея (только в символьном режиме).
О работе над Windows, корпорация Microsoft заявила в ноябре 1983 года и
реализовала ее двумя годами позже, в ноябре 1985 года.
В начале работы над Windows программистам из Microsoft был доступен лишь
компьютер класса XT с процессором 8088 и максимальным объёмом памяти в 640 KB. Реальным же был объём в 256 КВ, 2 дисковода на 360 КВ (жёсткий диск в те времена был слишком дорогой роскошью) и видеоадаптер CGA.
Windows 1.0
Официально днем рождения Windows можно считать выставку Comdex, проходившую в ноябре 1985 года в Лас-Вегасе, на которой пресс-конференция Microsoft плавно перетекла в презентацию нового продукта Microsoft Windows 1.0.
Основные особенности Windows 1.0:
•многооконность (однако, окна не могли перекрываться);
•многозадачность(одновременное выполнение несколько Windows приложений и/или одно приложение DOS);
•библиотека графического интерфейса пользователя GDI;
•использование всей памяти;
•шрифтовая поддержка независимо от дисплеев и принтеров.
Эта была, некоторого рода, «надстройка» над DOS, которая могла брать на себя часть его функций.
Windows 1.3
Основные особенности Windows 1.3:
•поддержка расширенной памяти (LIM), которая повышала ее производительность;
•возможность «своповать» код и данные в расширенную память.
Задача при этом могла выполняться только на 640 КВ стандартной памяти. В это же время для Windows был переписан Aldus PageMaker 1.0 и графический пакет In-A-Vision
фирмы Micrografx
Windows 2.0
Windows 2.0 вышла в 1987 году.
Основные особенности Windows 2.0:
•кнопки максимизации и минимизации;
•перекрывающиеся окна;
•введён протокол динамического обмена данными (DDE);
•поддержка клавиатурных эквивалентов для большинства стандартных команд и функций меню.
Windows 3.0
Настоящим прорывом стал выход в 1990 году Windows 3.0.
Основные особенности Windows 3.0:
•адресация большого объема памяти, работая при этом в Расширенном режиме
(Expanded mode);
•полный контроль работы DOS;
•«приятный» графический интерфейс;
•полосы прокрутки с кнопками;
•пропорциональные шрифты.
Появление в мае 1990 года Windows 3.0 ознаменовало новую эру программного обеспечения персоналок.
Несмотря на все улучшения, в среде Windows 3.0 были и существенные
упущения:
•недостаток системных ресурсов, что делало невозможным полное использование имеющейся памяти;
•системные ошибки (UAE), происходившие намного чаще, чем этого можно было ожидать.
Windows 3.1
Решение этих проблем привело к появлению версии Windows 3.1, которая изначально планировалась как небольшое улучшение версии 3.0.
Основные особенности Windows 3.1:
•введение поддержки масштабируемых шрифтов технологии TrueType;
•реализован протокол создания составных документов OLE(Object Linking and Embading – связывание и внедрение объектов);
•документирован протокол Drag-and-Drop(оттащи и брось);
•введены панели диалога общего назначения (COMMDLG);
•открыты ранее не документированные функции и рабочие области ядра (TOOLHELP);
•многозадачность (одновременное исполнение нескольких как Windows, так и DOS задач);
•совместимость различных комплектующих с конкретными приложениями;
•работа практически со всеми типами данных – от текстов до мультимедиа (фотографии, звуки, анимация, видео);
•мощный API (Application Program Interface – программный интерфейс приложений) позволил разработчикам проектировать приложения практически любой сложности, от текстовых процессоров до САПР и зрелищных игр.
Среда Windows превратилась в хороший инструмент для разработчиков и удобный графический интерфейс для пользователей.
Windows for Workgroups версии 3.11
В конце 1992 года была выпущена сетевая версия Windows - Windows for Workgroups версии 3.11.
Основные особенности Windows for Workgroups версии 3.11:
•интеллектуальная программа Установки, позволяющая автоматически распознавать
тип установленной сетевой карты |
и тип используемого в сети протокола; |
•32-разрядная архитектура сетевых драйверов;
•возможность просмотра ресурсов сети;
•динамический обмен данными между приложениями, выполняемыми на разных компьютерах;
•новые прикладные программы для Windows.
Данная система логически продолжает линию Windows и позволяет соединить в единую сеть отдельные компьютеры по бессерверной схеме. Каждый из участников является равноправным в сети. Если какой-либо из компьютеров не работает, то это никак не скажется на работе сети в целом. При этом обеспечивается реальная преимущественная многозадачность, отсутствовавшая до сих пор в Windows. Благодаря такой многозадачности для пользователя становится неощутимым использование ресурсов его компьютера другими членам рабочей группы.
Windows NT
В 1993 году выпущено новое поколение Windows - Windows NT (новые технологии) - 32-разрядная многозадачная операционная система, которая работает
на нескольких аппаратных платформах. Включает в себя новые функции, необходимые для работы критически важных приложений, и организации клиентсерверных вычислений. Система была ориентирована на рынок высокопроизводительных серверов и рабочих станций.
Windows 95
Windows 95. Работа над новой версией операционной системы, которая должна была стать преемником популярной Microsoft Windows 3.1, началась в 1992 году
и продолжалась немногим более 3-х лет.
При создании новой операционной системы преследовались следующие цели:
•новая система должна была иметь новый, более удобный интерфейс пользователя;
•обеспечивать работу в защищенном режиме;
•иметь встроенную поддержку различных сетей; иметь поддержку технологии Plug-and- Play;
• иметь поддержку интерфейса программирования Win32 API; быть устойчивой и надежной.
Официальные системные требования Windows 95 были следующие: процессор – не
ниже 386DX (на практике рекомендуется 486DX); ОЗУ - не менее 4 Мбайт (рекомендуется 12 Мбайт); место на жестком диске – не менее 100 Мбайт (рекомендуется 200 Мбайт плюс место для файла подкачки); видеоадаптер – VGA -