Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО_экзамен.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
500.22 Кб
Скачать

Структура logfont

Поле

Описание

lfHeight

Высота шрифта, логических единиц

lfWidth

Ширина шрифта, логических единиц

lfEscapement

Угол нанесения текста - угол между базовой линией текста и горизонталью (десятые доли градуса)

lfOrientation

Наклон символов (десятые доли градуса)

lfWeight

Толщина линий начертания шрифта ("жирность")

lfItalic

Ненулевое значение означает курсив

lfUnderline

Ненулевое значение означает подчеркивание

lfStrikeOut

Ненулевое значение означает перечеркнутый шрифт

lfCharSet

Номер набора символов шрифта - таблицы кодировки

lfOutPrecision

Параметр, определяющий соответствие запрашиваемого шрифта и имеющегося в наличии

lfClipPrecision

Параметр, определяющий способ "обрезания" изображения литер при их выходе за пределы области ограничения вывода

lfQuality

Качество воспроизведения шрифта

lfPitchAndFamily

Это поле определяет, будет ли шрифт иметь фиксированную или переменную ширину литер, а также семейство, к которому принадлежит шрифт

lfName

Имя шрифта

Параметры шрифта задаются в данной структуре следующим образом:

LOGFONT MyFont;

sprintf(MyFont.lfFaceName,"Courier New"); //имя шрифта

MyFont.lfEscapement=-10*A-900;// угол наклона

MyFont.lfHeight=75;// высота

MyFont.lfCharSet=ANSI_CHARSET;//кодировка

MyFont.lfOutPrecision=OUT_DEFAULT_PRECIS;//точность вывода

MyFont.lfWidth=50;// средняя ширина

MyFont.lfWeight=600; // толщина

MyFont.lfItalic = false;// курсив

MyFont.lfUnderline = false;//подчеркивание

MyFont.lfStrikeOut = false;//зачеркивание

9. Атрибуты контекста устройств, влияющие на вывод текста

При рисовании на экране приложение получает дескриптор контекста устройства с помощью функции BeginPaint при обработке сообщения WM_PAINT и освобождает его перед завершением обработки сообщения, вызвав функцию EndPaint. При обработке других сообщений контекст должен быть получен с помощью функции GetDC, а после завершения процедуры рисования перед выходом из обработчика сообщений следует освободить полученный контекст, вызвав функцию ReleaseDC.

В нашем приложении это выглядит так:

HDC hdc;// описатель контекста устройства

PAINTSTRUCT ps;

case WM_CHAR:{

hdc = GetDC(hWnd);

. . .

ReleaseDC(hWnd, hdc);

}; break;

case WM_PAINT:{

hdc = BeginPaint(hWnd, &ps);

. . .

EndPaint(hWnd, &ps);};

break;

10. Методы gdi вывода текста

GDI (интерфейс графического устройства) – набор функций, данных и структур, которые позволяют программе нормально работать на любых графических устройствах отображения, т.е. отделить программу от конкретных характеристик устройства.

Для вывода текста можно использовать функцию BOOL TextOut. В нашем приложении это выглядит так:

TextOut(hdc,xc, yc, &ch, 1); где xc и yc – координаты начальной позиции строки, &ch – указатель на симовол, полученный по нажатию клавиши из wParam, 1 – длина строки.