怎样将字体(.ttf)文件嵌入至资源中并且用程序读取字体?
怎样将字体(.ttf)文件嵌入至资源中并且用程序读取字体?
我制作了一个小程序,使用了艺术字体。想在别的地方使用,但是不能确定目标机器是否安装了这个字体。所以想让程序和字体一起打包传输。该怎样做呢?
[解决办法]
使用标准资源读取方法找到字体资源,例如
HINSTANCE hInstRes = NULL or the dll/exe that contains the font resource;
HRSRC hRsrc = hFindResource(hInstRes, _T("the private font name") or ID_MYFONT, RT_FONT);
DWORD cbSize = SizeofResource(hInstRes, hRsrc);
HGLOBAL hMem = LoadResource(hInstRes, hRsrc);
LPVOID pvData = LockResource(hMem);
DWORD nFontsInstalled = 0;
HANDLE hFontInstalled = AddFontMemResourceEx(pvData, cbSize, NULL, &nFontsInstalled);
// OK使用字体。
CreateFont(...);
// 最后删除字体资源。
RemoveFontMemResourceEx(hFontInstalled);