Шаг 133 - Установка и удаление шрифтов (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;
	}
}

С этого момента шрифт станет, известен всем приложениям. Например, в блокноте его можно будет выбрать.

133_1.gif (9526 b)

Этот шрифт будет известен системе до тех пор пока она не будет перезагружена или шрифт не будет удален из системы используя функцию:

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;
	}
}

Теперь этого шрифта не будет в списке:

133_2.gif (2743 b)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.08.2001