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





Article #17309: How do I add a TrueType font to Windows 95 in code?

 Question and Answer Database

FAQ2309C.txt   How do I add a TrueType font to Windows 95 in code?
Category   :VCL
Platform    :All
Product    :C++Builder  3.x

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:

// In the header file use:
// #include 
// and
// TRegistry *reg;

NOTE: The WINGDING font is an example.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    bool b = false;
    b = CopyFile("C:\\Download\\WingDing.TTF","C:\\WINDOWS\\FONTS\\WingDing.TTF",b);
    reg = new TRegistry;
    reg->RootKey = HKEY_LOCAL_MACHINE;
    reg->LazyWrite = false;
    reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Fonts", b);
    reg->WriteString("WINGDING(TrueType)","WingDing.TTF");
    reg->CloseKey();
    reg->Free();
    AddFontResource("C:\\Windows\\Fonts\\WingDing.TTF");
    SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
    RemoveFontResource("C:\\Windows\\Fonts\\WingDing.TTF");
    SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
}

7/2/98 10:32:32 AM
 

Last Modified: 01-SEP-99