Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
61 Выбор семейств шрифтов.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
35.3 Кб
Скачать

63 Выбор семейств шрифтов. Файл приложения (menu2.Cpp). Системные шрифты

Операционная система имеет набор встроенных шрифтов, которые может исполь-

зовать прикладная программа, выбрав их при помощи функции GetStockObject().

Для тестирования стандартных шрифтов добавим, например, такую строку в сооб-

щение WM_PAINT:

SelectObject(hdc, GetStockObject(ANSI_VAR_FONT));

Вывод текста теперь будет осуществляться другим шрифтом.

Освобождать ресурсы, занятые встроенными шрифтами, не нужно.

Определение произвольных шрифтов

Кроме встроенных шрифтов, в программе может использоваться любой шрифт,

зарегистрированный в системе. Для того чтобы программа могла осуществлять вы-

вод выбранным шрифтом, его необходимо создать функцией CreateFont() или

CreateFontIndirect():

64 Выбор семейств шрифтов. Класс окна в C/C++. Windows и объектно-ориентированные программы. Значки Windows. Курсоры Windows. Текстовые маркеры.

Системные шрифты

Операционная система имеет набор встроенных шрифтов, которые может исполь-

зовать прикладная программа, выбрав их при помощи функции GetStockObject().

Для тестирования стандартных шрифтов добавим, например, такую строку в сооб-

щение WM_PAINT:

SelectObject(hdc, GetStockObject(ANSI_VAR_FONT));

Вывод текста теперь будет осуществляться другим шрифтом.

Освобождать ресурсы, занятые встроенными шрифтами, не нужно.

Определение произвольных шрифтов

Кроме встроенных шрифтов, в программе может использоваться любой шрифт,

зарегистрированный в системе. Для того чтобы программа могла осуществлять вы-

вод выбранным шрифтом, его необходимо создать функцией CreateFont() или

CreateFontIndirect():

Класс окна

Операционная система windows является объектно-ориентированной. Все элементы управления (объекты) являются окнами в том или ином виде. Каждый такой элемент имеет свои параметры состояния, входные и выходные сообщения. Традиционно при написании программ с использованием чистого winapi применяются методы структурного программирования.

При создании нового окна ему присваивается «Класс окна» (window class). Класс окна задает оконную функцию, используемую по умолчанию. Кроме этого, класс окна задает другие параметры окна, такие, как стиль, меню окна, цвет рабочей области и т.д. Разные классы окон могут указывать на одну и ту же функцию обработки сообщений. Для создания класса его необходимо зарегистрировать.

За регистрацию отвечает функция RegisterClass.

Класс окна приложения создается при запуске приложения функцией RegisterClass. В ее параметре необходимо передать указатель на структуру WNDCLASS. Обычно для заполнения структуры и вызова RegisterClass создают отдельную функцию.

Этот класс определяет поведение окна, то есть его внешний вид, возмножности перетаскивания и многое другое на основе стилей. Когда идет разговор о классе окна не надо забывать, что класс окна это структура, которая описывает свойства окна, а не класс в понимании программиста.

typedef struct tagWNDCLASS { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCSTR lpszMenuName; LPCSTR lpszClassName; } WNDCLASS;

Каждое окно имеет класс. И перед созданием окна класс окна необходимо зарегистрировать. Регистрировать можно только для использования в своем приложении или для общего использования в системе всеми приложениями. Windowsпредоставляет много готовых классов для общего использования приложениями. Вот некоторые основные классы:

Edit Listbox ComboBox ScrollBar Button Static

Windows и объектно-ориентированные программы.