Главная страница | назад





Article #17537: Adding TrueType fonts to windows in code.

 Question and Answer Database

FAQ2537D.txt   Adding TrueType fonts to windows in code.
Category   :Windows API
Platform    :All
Product    :All 32 bit  

Question:
How do I add a TrueType font to Windows 95 in code;


Answer:
You should copy the file to the Windows\Fonts directory,
then add an entry to the registry key:

 "'Software\Microsoft\Windows\CurrentVersion\Fonts".

The entry will be the font name and the path (if different 
than the Windows\Fonts directory). Once the registry entry 
is written, you should make a call to the Windows API 
function AddFontRecource(), then broadcast a system-wide 
WM_FONTCHANGE message. Finally, you should make a call to 
the Windows API function RemoveFontRecource(), to remove 
the resource lock on the font file, and broadcast a second
system-wide WM_FONTCHANGE message.

Here is an example:

uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
var
  reg: TRegistry;
  b : bool;
begin
  CopyFile('C:\DOWNLOAD\FP000100.TTF',
           'C:\WINDOWS\FONTS\FP000100.TTF', b);
  reg := TRegistry.Create;
  reg.RootKey := HKEY_LOCAL_MACHINE;
  reg.LazyWrite := false;
  reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Fonts',
              false);
  reg.WriteString('TESTMICR (TrueType)','FP000100.TTF');
  reg.CloseKey;
  reg.free;
 {Add the font resource}
  AddFontResource('c:\windows\fonts\FP000100.TTF');
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
 {Remove the resource lock}
  RemoveFontResource('c:\windows\fonts\FP000100.TTF');
  SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;


7/16/98 4:31:28 PM
 

Last Modified: 01-SEP-99