Практика программирования (Бейсик, Си, Паскаль)



         

Текстовые сообщения в графическом режиме - часть 4


Самые большие неприятности доставил шрифт DEFAULT_F0NT. Для него нельзя использовать функцию setusercharsize после выбора шрифта (settextstyie). Для того чтобы растровая буква оказалась на линии строки, ее пришлось опустить на межстрочный промежуток, равный 1 пикселу (с учетом масштабного множителя — на 10 пикселов).

Программа 8_13.с

/* Буква "А" в разных шрифтах */

#include <stdio.h>

#include <conio.h>

#include <graphics.h>

int x,y=470;

void a_in_box(int dy) {

int w,h; /* 0пределение размеров габаритного прямоугольника */

w=textwidth("А");

h=textheight("А");

printf("w=%d h=%d ",w,h);

/* 0бводка границ прямоугольника со смещением на 2 пиксела */

rectangle(x-2,y-h,x+w-2,y+2); /* Вывод буквы А */

outtextxy(x,y+dy,"A"); }

main()

{

int gd=0,gm;

initgraph(&gd,&gm,""); /* Установки для рисования черным по белому */

setpalette(l,0);

setcolor(1);

setbkcolor(15);

settextjustify(0,0);

settextstyle(2,0,l); /* SmallFont */

setusercharsize(30,1,267,1);

x=4;

a_in_box(0);

settextstyle(3,0,1); /* SansSerifFont */

setusercharsize(86,10,75,10);

x=186;

a_in_box(0);

settextstyle (1,0,1); /* TriplexFont */

setusercharsize(95,10,78,10);

x=368;

a_iri_box(0);

settextstyle(0,0,10); /* DefaultFont, общее увеличение=10 */

x=550;

a_in_box(10);

getch ();

closegraph(); }




Содержание  Назад  Вперед