
- •Основные компоненты windows – программы (.Cpp, .H, .Res, .Rc, .Def), компиляция.
- •Файл определения модуля.
- •Структура windows – программы.
- •Структура программы в Windows:
- •Сообщения. Источники сообщений
- •Формирование сообщений, примеры. Очереди.
- •Сообщения. Цикл сообщений, основные компоненты.
- •Сообщения. Структура сообщений на примере wm_command
- •Структура msg. Обработка сообщений.
- •Средства обработки сообщений в приложении и windows.
- •Окна, классы и типы окон.
- •Регистрация класса окна, основные элементы класса.
- •Int cbClsExtra; // 3. Доп. Память для окон, созд-мых на базе данного класса
- •Int cbWndExtra; // 4. Доп. Память для создания окна (3, 4 – в байтах)
- •Линейки прокрутки, переключатели, окна пометки, окна списка.
- •1. Кнопки, переключатели (переключатели – кнопки с 3-мя состояниями (вкл, выкл и неактивен)
- •2. Полосы прокрутки.
- •3. Окна списка
- •Комбинированные списки, окна редактирования и статические текстовые объекты.
- •1. Комбинированные списки
- •2. Окна редактирования
- •3. Статический орган управления (статический текстовый объект)
- •Способы создания меню
- •Создание меню в файле ресурсов
- •С помощью функций в теле программы
- •Создание меню редактором ресурсов
- •Определение диалоговой панели, взаимодействие пользователя с панелью.
- •1. Создание шаблона.
- •2. Создание функции диалога.
- •3. Вызов одной из функций создания диалога
- •Диалоговые панели, модальные панели.
- •Немодальные панели. Отличие циклов сообщений.
- •Ресурсы. Файл ресурсов, текстовый, бинарный. Создание.
- •Файл определения модуля. Назначение, основные директивы (относящиеся к коду и данным).
- •Графический приборный интерфейс gdi. Состав, назначение.
- •Контекст, содержание контекста.
- •Общий контекст, родительский, личный, для класса окна, физический.
- •1. Общий контекст отображения.
- •2. Контекст отображения для класса окна
- •3. Личный контекст отображения
- •4. Родительский контекст отображения
- •5. Контекст физического устройства
- •Последовательность действий приложения при формировании рисунка
- •Преобразование логических координат в физические и наоборот, единицы измерений, масштабирование.
- •Назначение и состав структуры paintstruct. Сообщение wm_paint.
- •Int right; х-коор-та нижнего правого угла
- •Int bottom; y-коор-та
- •Дополнительные темы.
- •Аппаратная независимость
- •Основные компоненты windows – программы (.Cpp, .H, .Res, .Rc, .Def), компиляция
Контекст, содержание контекста.
Контекст – структура, в которой по умолчанию находятся значения для отображения.
Контекст отображения представляет собой структуру в памяти, описывающую окно.
В этой структуре находятся такие характеристики окна, используемые для вывода в него текста и графических изображений – атрибуты контекста отображения. Весь вывод в окно должен выполняться с использованием функций интерфейса графических устройств GDI, составляющих подмножество программного интерфейса Windows. Устанавливаются изначально значения по умолчанию.
Атрибуты контекста отображения (20 атрибутов)
Цвет фона (по умолчанию – белый цвет, функция – SetBkClr)
Режим фона – позволяет переустанавливать режим фона (прозрачный (TRANSPERENT)/непрозрачный (OPAQUE) – по умолчанию; функция – SetBkMode)
Режим рисования (по умолчанию – берется у инструмента, выбранного для рисования; новое изображение полностью замещает исходное, других режимов – десятки (можно использовать логические операции при рисовании); функция – SetROP2)
Цвет текста (по умолчанию – черный цвет, функция – SetTextColor, вывод - TextOut)
Шрифт (по умолчанию – системный, функции - SelectObject, CreateFont[Indirect])
Расстояния между символами (по умолчанию – 0, функция – SetTextCharacterExtra)
Цветовая палитра – таблица, в которой записаны цвета (обычно ограничено 255)
(функции – CreatePalette, SelectPalette, RealizePalette)
Кисть (по умолчанию – белый цвет, размер 8х8 пикселей, для закрашиванию замкнутых областей; функции – CreateSolidBrush, CreateHatchBrush, SelectObject, …)
Начальные координаты кисти (по умолчанию – (0,0), функция – SetBrushOrg, UnrealizeObject)
Режим закрашивания многоугольников (по умолчанию – ALTERNATE (заполняются области между четными и нечетными сторонами), также есть – WINDING (режим заполнения), функция - SetPolyFillMode)
Перо (по умолчанию – толщина 1 пиксель; цвет черный, функции – CreatePen[Indirect], SelectObject (более универсальная); толщину можно менять только для обычной линии)
Текущая толщина пера (по умолчанию – (0,0), функция – MoveTo, LineTo)
Изображение bitmap (нет по умолчанию, функции – SelectObject, CreateBitMap[Indirect])
Режим растяжки – увеличение/уменьшение размера битового массива, растяжение приводит к резкому ухудшению изображения (функция – StrechBlt,
режим BLACKONWHITE (по умолчанию; превалирует черный цвет («ИЛИ»))
режим WHITEONBLACK (превалирует белый цвет («И»)))
Область ограничения (по умолчанию – совпадает с областью вывода,
функции – CreateEllipticRgn, CreatePolygonRgn, CreateRectRgn, CreateClipRgn, … )
Режим отображения (по умолчанию – MM_TEXT, функция изменения системы координат - SetMapMode, в WindowsNT можно использовать наклонные системы координат)
Начало системы логических координат (по умолчанию – (0,0), функция - SetWindowOrg)
Начало системы физических координат (по умолчанию – (0,0), функция - SetViewportOrg)
Масштаб осей окна (по умолчанию – 1:1, функция - SetWindowExt)
Масштаб физических координат (по умолчанию – 1:1, функция - SetViewortExt)
Контекст устройства (device context), относящийся ко всей поверхности экрана видеомонитора, позволит выводить текст или графические изображения в любое место экрана.
Представляет собой структуру данных, связанная с тем или иным устройством ввода/вывода. Контекст устройства определяет различные параметры, используемые при работе с устройством, аналогично контексту отображения. В этом контексте хранится режим отображения, то есть указывается способ, с помощью которого логические координаты отображаются в физические.
Способы получения (и, соответственно, освобождения) контекста отображения разные для контекстов разного типа. Можно выделить следующие типы контекста отображения (свои особенности и назначение):
общий контекст отображения (common display context);
контекст отображения для класса окна (class display context);
личный контекст отображения (private display context);
родительский контекст отображения (parent display context);
контекст отображения для окна (window display context);
контекст физического устройства (device context);
информационный контекст (information context);
контекст для памяти (memory device context);
контекст для метафайла (metafile context).