- •Порядок обработки сообщений, цикл обработки сообщений
- •Атрибуты контекста.
- •Порядок обработки сообщений, цикл обработки сообщений
- •Аппаратные сообщения
- •Символьные сообщения
- •Дочерние окна
- •Класс полос прокрутки
- •Класс редактирования
- •25 Класс окна списка
- •Способы хранения данных программы
- •Общие сведения о файле ресурсов
- •Меню и сообщения
- •Многозадачность и многопоточность
- •Вытесняющая многозадачность
- •Использование функции Sleep
- •36 Критические разделы
- •37 Использование событий
- •38 Многооконный интерфейс. Элементы mdi. Windows и mdi
- •39 Динамически подключаемые библиотеки. Типы связывания
38 Многооконный интерфейс. Элементы mdi. Windows и mdi
Многооконный интерфейс (Multiple Document Interface, MDI) является спецификацией для приложений, которые обрабатывают документы в Microsoft Windows. Спецификация описывает структуру окон и пользовательский интерфейс, который позволяет пользователю работать с несколькими документами внутри одного приложения (с документами в текстовом процессоре или с таблицами в программе электронных таблиц). Точно также, как Windows поддерживает несколько окон приложений на одном экране, приложение MDI поддерживает несколько окон документов в одной рабочей области. Первым приложением MDI для Windows была первая версия Microsoft Excel. Microsoft Word for Windows иMicrosoft
Главное окно приложения программы MDI обычно: в нем имеется строка заголовка, меню, рамка изменения размера, значок системного меню и значки свертывания. Рабочая область, однако, не используется непосредственно для вывода выходных данных программы. В этой рабочей области может находиться несколько дочерних окон, в каждом из которых отображается какой - документ.
Эти дочерние окна выглядят совершенно так же, как обычные окна приложений. В них имеется строка заголовка, рамка изменения размера, значок системного меню, значки свертывания и, возможно, полосы прокрутки
При знакомстве с поддержкой MDI в Windows требуется новая терминология. Окно приложения в целом называется главным окном (frame window). Также как в традиционной программе для Windows, это окно имеет стиль WS_OVERLAPPEDWINDOW.
Приложение MDI также создает окно - (client window) на основе предопределенного класса окна MDICLIENT. Окно создается с помощью вызова функции CreateWindow с использованием этого класса окна и стиля WS_CHILD. Последним параметром функции CreateWindow является указатель на небольшую структуру типа CLIENTCREATESTRUCT. Это окно - охватывает всю рабочую область главного окна и обеспечивает основную поддержку MDI
39 Динамически подключаемые библиотеки. Типы связывания
До сих пор мы использовали множество функций API для создания окон и оконных процедур, рисования, работы с клавиатурой и мышью, ввода-вывода. Все эти функции работали исправно и вы не задумывались над вопросом: где расположены эти функции и каким образом они подключаются к вашей программе. Все, что вам необходимо было сделать, это подключить соответствующий заголовочный файл (чаще всего это был < windows . h >) и вызвать необходимую функцию. Все остальные действия по включению функции в вашу программу среда программирования делала автоматически. Теперь пришла пора рассмотреть механизмы, обеспечивающие возможность использования функций.
Компиляция программы со статическим связыванием второго вида
40 Процесс создания и использования библиотек DLL
Процесс создания динамической библиотеки проходит в два этапа. Первый из них заключается в создании файла-заголовка (*. h ), который определяет основные свойства проекта.
С помощью "визарда" среды Microsoft Visual C++ создайте новый проект, выбрав в качестве типа проекта Dinamic Linked Library , после чего определите "пустой проект" ( empty project ). Теперь вам предстоит самостоятельно создать файлы проекта. Пусть имя вашего проекта будет funlib .
Создайте файл заголовка – funlib . h (при помощи меню File\New..., выбрав файл-заголовок )
41 Метафайлы
Метафайлы являются примером другого способа представления графической информации - векторного. В растровом изображении каждой точке некоторой области (листа бумаги, экрана монитора) соответствует некоторое число, определяющее цвет этой точки. В векторной графики существует некоторый набор примитивов Данные записи составляют содержимое метафайла.
При отображении метафайла на экране, поочередно выбираются записи, в которых содержатся имя графического примитива и его параметры. Для каждого типа примитива вызывается соответствующая функция GDI , которая и рисует примитив на основе его параметров.
Поскольку метафайл описывает изображение в терминах команд графического вывода, изображение может быть промасштабировано без потери разрешения. С битовыми образами это невозможно: при увеличении битового образа биты будут просто повторяться горизонтально или вертикально, при уменьшении – выбрасываться на основе какого-либо алгоритма.
Метафайлы могут быть преобразованы в битовый образ без потери информации. Обратное преобразование практически невозможно в общем случае.
