Установка и удаление шрифтов (AddFontResource,RemoveFontResource)
Для установки шрифта в систему используется функция AddFontResource:
int AddFontResource
(
LPCTSTR lpszFilename // имя файла шрифта
);
При неудаче вернет ноль. После установки шрифта программа должна послать извещение с параметрами:
WM_FONTCHANGE
HWND_BROADCAST
Пробуем ? Win 32 Console Application.
// InstallFont.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
#include "windows.h"
void main()
{
int i=AddFontResource("D:\\VС\\InstallFont\\geomap.TTF");
if (i!=0)
{
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); // сообщить о шрифте
cout << "install" << endl;
}
}
С этого момента шрифт станет, известен всем приложениям. Например, в блокноте его можно будет выбрать.
Этот шрифт будет известен системе до тех пор пока она не будет перезагружена или шрифт не будет удален из системы используя функцию:
BOOL RemoveFontResource
(
LPCTSTR lpFileName // имя шрифта
);
При успешном выполнении функция вернет ненулевое значение. Пробуем:
#include "stdafx.h"
#include "iostream.h"
#include "windows.h"
void main()
{
if (RemoveFontResource("D:\\VС\\InstallFont\\geomap.TTF")!=0)
{
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0); // сообщить о шрифте
cout << "removed" << endl;
}
}
Теперь этого шрифта не будет в списке