Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2009, 18:38   #1
jungle
Пользователь
 
Аватар для jungle
 
Регистрация: 22.11.2008
Сообщений: 65
По умолчанию Функция CreateFont

Функция CreateFont

Описание:

function CreateFont(Height, Width Escapement, Orientation, Weight: Integer; Italic, Underline, StrikeOut, CharSet, OutputPrecision, ClipPrecision, Quality, PitchAndFamily: Byte; FaceName: PChar): HFont;

Создает логический шpифт, выбpанный из пула физических шpифтов интеpфейса GDI согласно указанным хаpактеpистикам.

Параметры:

Height: Высота шpифта (в логических единицах).
Width: Шиpина шpифта (в логических единицах)
Escapement: Угол (наклона) стpоки (в десятых долях гpадуса)
Orientation: Угол наклона оси символов (в десятых долях гpадуса)
Weight: Вес шpифта (0 - 000). Либо можно использовать константы fw_, такие как fw_Bold.
Italic: Шpифт - куpсив.
Underline: Шpифт - с подчеpкиванием.
StrikeOut: Шpифт с пеpечеpкиванием.
CharSet: Одна из констант ANSI_CharSet, OEM_CharSet, Symbol_CharSet.
OutputPrecision: Одна из констант Out_Character_Precis, Out_Default_Precis, Out_String_Precis, Out_Stroke_Precis.
ClipPrecision: Одна из констант Out_Character_Precis, Out_Default_Precis, Out_String_Precis, Out_Stroke_Precis.
Quality: Одна из констант Default_Quality, Draft_Quality, Proof_Quality.
PitchAndFamily: Одна из констант Default_Pitch, Fixed_Pitch или Variable_Pitch, скомбиниpованная с одной из констант ff_Decorative, ff_DontCare, ff_Modern, ff_Roman, ff_Script или ff_Swiss.
FaceName: Название шpифта (заканчивающееся пустым символом).


Что за название шрифта? Что сюда писать?
jungle вне форума Ответить с цитированием
Старый 28.08.2009, 19:10   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Название шрифта=)
C:\WINDOWS\Fonts
Например Arial или Calibri
Шрифт можно скачать из интернета и воспользоваться такими функциями:

Код:
function GetFontName(FontFileA : PChar): string;
type
  TGetFontResourceInfoW = function (FontPath : PWideChar; var BufSize : DWORD; FontName : PWideChar; dwFlags : DWORD) : DWORD; stdcall;
var
  GetFontResourceInfoW : TGetFontResourceInfoW;
  FontFileW : PWideChar;
  FontNameW : PWideChar;
  FontFileWSize, FontNameSize : DWORD;
begin
  Result := '';
  GetFontResourceInfoW := GetProcAddress(GetModuleHandle('gdi32.dll'), 'GetFontResourceInfoW');
  if @GetFontResourceInfoW = nil then Exit;
  if AddFontResource(FontFileA) = 0 then Exit;
  FontFileWSize := (Length(FontFileA)+1)*2;
  GetMem(FontFileW, FontFileWSize);
  StringToWideChar(FontFileA, FontFileW, FontFileWSize);
  FontNameSize := 0;
  FontNameW := nil;
  GetFontResourceInfoW (FontFileW, FontNameSize, FontNameW, 1);
  GetMem (FontNameW, FontNameSize);
  FontNameW^ := #0; // íà ñëó÷àé êàêîãî-íèáóäü îáëîìà
  GetFontResourceInfoW (FontFileW, FontNameSize, FontNameW, 1);
  Result := FontNameW;
  FreeMem (FontFileW);
  FreeMem (FontNameW);
  RemoveFontResource(FontFileA);
end;

function AddFontResource(FilaName: string): string;
begin
  AddFontResourceEx(pchar(FilaName), FR_PRIVATE, nil);
  Result:=GetFontName(pchar(FilaName));
end;
GetFontName принимает имя файла шрифта и возвращает имя самого шрифта
AddFontResource добавляет шрифт и возвращает его имя
А дальше можно создавать объект шрифта из любого своего шрифта или загруженного из интернета

Удалить шрифт можно с помощью это функции:

Код:
procedure ReleaseFontResource(FilaName: string);
begin
  RemoveFontResourceEx(pchar(FilaName), FR_PRIVATE, nil);
end;

Последний раз редактировалось Kostia; 28.08.2009 в 19:14.
Kostia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция Dialon Помощь студентам 4 02.02.2009 23:15
Функция Kloun1 Паскаль, Turbo Pascal, PascalABC.NET 5 24.01.2009 19:56
Функция в VB asd48 Помощь студентам 1 25.12.2008 23:29
Функция Lemo Помощь студентам 1 02.12.2008 00:24
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50