Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

текст в ддроу   Найти похожие ветки 

 
Green_Templar ©   (2005-06-26 00:58) [0]

Как выбрать шрифт, которым пишешь на канве у ддроу?


 
Кефир87 ©   (2005-06-26 01:07) [1]

Прям ДиректХ или ДелфиХ?
А то в делфиХ савсем просто:
DXDraw.Surface.Canvas.Font.Name = "Courier";
а ДирекХ я не знаю 8(


 
злобная танька   (2005-06-26 08:44) [2]

нету у него канвы..
:(


 
cyborg ©   (2005-06-26 08:44) [3]



Var
 Surface : IDirectDrawSurface7;
 LF: TLogFont;
 Font : HFont;
 DC : HDC;

...

 FillChar(LF, SizeOf(LF), 0);
 with LF do
   begin
     lfHeight := 14; //размер шрифта
     lfWeight := fw_Normal; //fw_Normal - нормальный, FW_BOLD - жирный
     lfUnderline:=1; //Подчёркнутый
     lfItalic:=1; //Наклонный

     lfCharSet:= RUSSIAN_CHARSET;

     lfFaceName:="Arial"; //Название шрифта
   end;
 Font := CreateFontIndirect(@LF);

 //Захват контекста поверхности (требуется для Windows API функции вывода текста)
 if Surface.GetDC(DC)=0 then //Если удалось получить контекст поверхности
 begin
   SelectObject(DC,Font);

   SetTextColor(DC,TextColor); //Установить цвет выводимого текста
   SetBkMode(DC, TRANSPARENT); //Установить прозрачный фон выводимого текста

   TextOut(DC, 0, 0, PChar(Text), Length(Text)); //Тут выводишь текст

   //Освобождение контекста поверхности (обязательно после захвата контекста!)
   Surface.ReleaseDC(DC);
 end; //if Surface.GetDC(DC)=0

  DeleteObject(Font); // Удаляем ненужный шрифт.



Самое главное не забывай освобождать ресурсы!
Surface.ReleaseDC
DeleteObject(Font);

К тому же этот вариант очень медленный. Делай свой спрайтовый шрифт.


 
Green_Templar ©   (2005-06-27 00:33) [4]

Получил исчерпывающие ответы, спасибо :) Неужели спрайтовый шрифт быстрее обычного?
Я пишу пока на дэлфиХ (на ней быстрее), но потом переведу или на чистый ДХ, или на его компонент.
Как называются шрифты с постоянной шириной символов, является ли Ариал таким шрифтом, и есть ли шрифты, где можно делать жёлыте буквы с чёрным контуром?


 
Grell ©   (2005-06-27 02:26) [5]


>  Неужели спрайтовый шрифт быстрее обычного?

Вообще все методы GDI медленны для DirectDraw, а спрайтовый шрифт - это просто блиттинг отдельных символов на поверхность, поэтому он и быстрее!


 
Sphinx ©   (2005-06-27 06:43) [6]

>есть ли шрифты, где можно делать жёлыте буквы с чёрным контуром?
Фотошоп и лубой шрифт :)


 
NikeOLD ©   (2005-06-27 10:50) [7]


> Green_Templar ©   (27.06.05 00:33) [4]

Шрифты с постоянной шириной называются МОНОШИРИННЫМИ.
Arial и Times к таким шрифтам не относятся. Стандартный моноширинный шрифт в Винде - Courier



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
2-1130124489
Vitaliy
2005-10-24 07:28
2005.11.13
Наследование классов


14-1129913106
default
2005-10-21 20:45
2005.11.13
Доказательство FAT теоремы


10-1106831444
Inco
2005-01-27 16:10
2005.11.13
Maссивы в IDL


2-1129817011
Molchanov
2005-10-20 18:03
2005.11.13
CreateProcess


14-1129987892
SPeller
2005-10-22 17:31
2005.11.13
Стрим-ТВ