- •Процедурное программирование
- •Регистрация класса окна
- •Создание окна
- •Командная строка приложения
- •Функции окна приложения
- •Сообщение wm_destroy
- •Вывод в рабочую область окна
- •Контекст устройства и область отрисовки.
- •Сообщение wm_paint
- •Окно-список
- •Заполнение окна-списка
- •Список файлов
- •Изменение цвета органов управления
- •Комбинированный список
- •Меню и назначение клавиш
- •Создание описания меню в файле ресурсов
- •Сообщения меню
- •Диалоговые окна ( диалоги )
- •Определение диалоговых окон в файле ресурсов
- •Диалоговое окно About
- •Функция диалогового окна
- •Взаимодействие с органами управления диалоговых окон
- •Окно сообщений
- •Ввод данных
- •Извлечение данных из диалога
- •Ввод - вывод данных посредством передачи сообщений
- •Функция CreateFile ( )
- •Функция WriteFile ( )
- •Отображение файла в память
- •Функция CreateFileMapping().
- •Функция MapViewOfFile()
- •Работа с отображенным файлом
- •И н т е р ф е й с графических устройств (gdi)
- •Контекст устройства
- •Получение индекса контекста устройства
- •Получение информации из контекста устройства
- •Атрибуты контекста устройства
- •Сохранение изменений в контексте устройства
- •Система координат в Windows
- •Режимы отображения
- •Системы координат
- •Режим mm_text
- •Метрические режимы
- •Режим mm_isotropic
- •Режим mm_anisotropic
- •Вывод графических объектов
- •Двумерные объекты
- •Сегмент и сектор эллипса
- •Библиографический список
Функция MapViewOfFile()
Вызов CreateFileMapping() не позволяет еще использовать отображаемые файлы. Эти функции только открывает отображаемый файл, но не позволяет получить указатель на область памяти в этом файле. Для этого используется MapViewOfFile().
LPVOID MapViewOfFile(
HANDLE hFileObject, // объект возвращаемый функцией
// CreateFileMapping()
DWORD dwAccess, // режим доступа
DWORD dwOffsetHigh, // старшие 32 разряда смещения в файле
DWORD dwOffsetLow, // младшие 32 разряда смещения в файле
DWORD dwNumberBytes); // количество отображаемых байт
Первый параметр – отображает объект, значение дескриптора которого возвращается функцией CreateFileMapping().
Второй параметр устанавливает режим доступа и может принимать следующие значения:
FILE_MAP_WRITE – доступ для чтения/записи;
FILE_MAP_READ – доступ только для чтения;
FILE_MAP_COPY – создание копии при записи.
Третий и четвертый параметры являются старшими и младшими двойными словами, содержащие значение смещения внутри файла, начиная с которого нужно произвести чтение. Эти параметры используються если файл очень большой. Обычно значения их равны 0, что устанавливает чтение с начала файла.
Последний параметр – число отображаемых байт. Если нужно прочитать весь файл, то его значение равно NULL.
Пример:
LPVOID Data = MapViewOfFile( hMap, FILE_MAP_READ, 0, 0, 0);
Работа с отображенным файлом
После того как указатель Data на область памяти получен, его можно использовать для доступа к содержимому файла. При этом с содержимым файла можно обращаться так, как если бы это было обычная оперативная память. Если последние байты двух отображенных в память файлов равны 0 , то эти файлы можно присоединять друг к другу, сравнивать и т.д. с помощью обычных функций работы со строками.
И н т е р ф е й с графических устройств (gdi)
Приложения Windows используют системные драйверы самого Windows для управления устройствами отображения. При этом программисту не надо самому заниматься написанием драйверов устройств, достаточно пользоваться уже существующими функциями GDI. И если приложение выполняют , например, на компьютере с лучшим видеоадаптером, чем тот, который вы использовали при написании приложения, то благодаря GDI приложение будет автоматически исполняться с новым адаптером Windows режиме с наибольшим разрешением. Поэтому если используется новый видеоадаптер, то качество картинок, отображаемых приложением, будет лучше.
Таким образом, при использовании GDI не возникают проблемы, связанные с перенесением приложений на компьютеры с другими устройствами отображения, если эти устройства поддерживает Windows.
GDI обеспечивает для программ возможность использования двухмерной графики, различных наборов шрифтов, битовых образов и т.д.
Контекст устройства
Большинство функций GDI требуют для своего вызова предварительного получения контекста устройства, на котором отображается информация, будь то дисплей, печатающее устройство или графопостроитель.
Контекст устройства – это совокупность атрибутов, определяющих способ отображения функциями GDI информации на данном устройстве. Контекст устройства включает, например, такие атрибуты, как цвет фона, цвет символов отображаемого текста, тип используемого пера и кисти.