Chu*_*ckO 15 delphi fonts embedded-resource
我正在开发一款需要特定条形码真实字体的应用程序,这种字体不太可能出现在用户的PC上.
我可以以某种方式在应用程序中嵌入字体,还是我需要使用安装程序来安装字体?
ble*_*tin 12
在我看来,最简单的方法是使用AddFontMemResourceEx,以防将字体作为资源嵌入到EXE中.它允许直接从内存加载字体,无需将字体保存到文件.
代码示例:
function LoadResourceFont( const ResourceName : string ) : boolean;
var
ResStream : tResourceStream;
FontsCount : integer;
hFont : tHandle;
begin
ResStream := tResourceStream.Create(hInstance, ResourceName, RT_RCDATA);
hFont := AddFontMemResourceEx(ResStream.Memory, ResStream.Size, nil, @FontsCount);
result := (hFont <> 0);
ResStream.Free();
end;
Run Code Online (Sandbox Code Playgroud)
是的,您可以将其作为资源保存在EXE文件中,并且在用户的PC上,您可以使用TResourceStream实例将其作为文件提取.然后你可以调用AddFontResource API函数.最后,您应该向系统中的所有顶级窗口发送WM_FONTCHANGE消息(检查MSDN网站中AddFontResource描述的备注部分).
如果您需要示例代码,请告诉我.
| 归档时间: |
|
| 查看次数: |
7503 次 |
| 最近记录: |