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





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