|
Программирование >> Процедурные приложения
Под гарнитурой шрифта понимают совокупность элементов, определяющих внешний вид его символов. Отличительными особенностями любой гарнитуры являются толщина линий и наличие засечек (маленьких линий по нижнему и верхнему краям символа, с помощью которых оформляется его основной контур, как, например, в букве М). Выше уже отмечалось, что шрифт включает весь набор печатных символов определенной гарнитуры, размера и начертания (курсивное, полужирное и т.п.). Как правило, система содержит широкий набор стандартных шрифтов, которые могут использоваться всеми приложениями. Поэтому шрифты редко компилируют в качестве ресурсов в исполняемый файл. Функция CreateFont( ) Функция CreateFontOобъявлена в файле WINDOWS.H. Она выбирает из набора физических GDI-шрифтов тот шрифт, который наиболее точно соответствует характеристикам, указанным при ее вызове. Созданный логический шрифт может использоваться любыми устройствами. Функция CreateFontOимеет следующий синтаксис: CreateFont( высота, ширина, ориентация, наклон, толщина, курсив, подчеркивание, зачеркивание, набор символов, точность вывода, точность отсечения, качество, интервал и семейство, название) Краткое описание параметров функции CreateFont() дано в табл. 19.1.
]ff decorative- декоративный шрифт (LPCTSTR) название Строка, содержащая название гарнитуры шрифта При первом вызове функции CreateFont() создается пропорциональный полужирный шрифт размером в 12 логических единиц. По этой команде Windowsпытается найти среди установленных шрифтов такой, который максимально точно отвечает запрашиваемым параметрам. Этот шрифт используется для вывода заголовка гистограммы, подписи к горизонтальной оси и метки, обозначающей максимальный размер столбца. Во второй раз функция CreateFont() вызывается следующим образом: newfont.CreateFont(12,12,900,900,FW BOLD, FALSE, FALSE, FALSE, OEM CHARSET, OUT DEFAULT PRECIS, CLIP DEFAOLT PRECIS, DEFAULT QDALITY, VARIABLE PITCH FF ROMAN, Roman ); Как видите, изменены только параметры ориентации строки и наклона символов. Оба параметра измеряются в десятых долях градуса, поэтому наклону в 90 градусов соответствует значение 900. Этот шрифт используется для вывода подписи к вертикальной оси гистограммы. А вот как осуществляется вывод строки: oldfont = dc.SelectObject(Snewfont); dc.TextOut(50, 200+(strlen(szXString)*10/2), szYString, strlen(szYString)); Рисование осей координат и столбцов Координатные оси х и у выводятся на экран с помощью функций MoveTo() и LineTo(): Рисование осей координат dc.MoveTo(99,49); dc.LineTo(99,350); dc.LineTo(500,350); dc.MoveTo(99,350); Затем выполняются действия по подготовке к выводу столбцов гистограммы. Как видно из следующего фрагмента программы, первый столбец всегда начинается с точки 100,350, на что указывают значения переменных x1 и у1. Горизонтальная координата всех последующих столбцов вычисляется на основании координаты предыдущего столбца и ширины столбцов. Начальные значения xl= 100; yl = 350; х2 = xl + iBarWidth; Информация о высоте столбцов хранится в массиве iBarSizeScaled. Поскольку функция Rectangle() создает замкнутые фигуры, то полученный столбец можно заполнить цветом, воспользовавшись текущей кистью. Цвет кисти выбирается из массива dwColor, причем номер столбца соответствует номеру цвета в массиве. Рисование столбцов for(i= 0; i < iNBars; newbrush.CreateSolidBrush(dwColor[ i ]) ; oldbrush = dc.SelectObject(Snewbrush); y2 = 350 - iBarSizeScaledfi]; dc.Rectangle(xl,yl,x2,y2); xl = x2; x2 +- iBarWidth; удаление кисти dc.SelectObject(oldbrush); newbrush.DeleteObject() ; } После того как программа выведет один столбец, значения переменных x1 и х2 будут модифицированы таким образом, чтобы указывать на начальную точку следующего столбца. Цикл, for выполняется столько раз, сколько столбцов содержит гистограмма. Запуск программы После запуска программы на экране отображается гистограмма, заданная по умолчанию (рис. 19.11). Теперь можно создать свою гистограмму, вроде той, что показана на рис. 19.12. Для этого необходимо ввести заголовок и подписи к осям, а также значения для столбцов. Рис. 19.11. Гистограмма, выводимая аналогичной программой по умолчанию
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |