如何在 LabWindows CVI 中查找系统上是否安装了字体?
How to find if a font is installed on the system inside LabWindows CVI?
在用户界面资源文件的面板中,很少有带有特殊字体的文本消息控件(这是一个旧项目,其中 UIR 已经设计并用于生产,因此无法更改)。
在设计时 LabWindows 检测当前系统中是否安装了字体,如果没有,它会在编辑文本属性对话框中显示带有 (not found) 后缀,如如图所示
Font Not Found
但是在 运行 时间,如果字体仍然不可用,可执行文件将选择另一种可能不适合设计的控件大小的字体。
是否可以在启动时检测字体是否可用,如果不可用则警告用户安装?
系统详细信息:Windows-10 64 位上的老式 LabWindows-8.5。尝试搜索 Google 和 National Instruments 但没有找到答案。
也试过这个代码:
char buff[1024];
int xx = GetFontTypefaceName("Digital-7", buff);
但它总是 returns xx=9 和 buff="Digital-7" 不管测试计算机上是否安装了字体。
这是设计时 LabWindows 检测到字体已安装的情况:Font found
来自 Ni forum got a hint that indeed GetFontTypefaceName would be the way to go. Unfortunately it works in CVI versions 2009 or newer and I'm stuck with 8.5(2008). Most probably it was bugfixed in 9.0 or newer but didn't find any trace in their changelogs.
在用户界面资源文件的面板中,很少有带有特殊字体的文本消息控件(这是一个旧项目,其中 UIR 已经设计并用于生产,因此无法更改)。 在设计时 LabWindows 检测当前系统中是否安装了字体,如果没有,它会在编辑文本属性对话框中显示带有 (not found) 后缀,如如图所示 Font Not Found
但是在 运行 时间,如果字体仍然不可用,可执行文件将选择另一种可能不适合设计的控件大小的字体。
是否可以在启动时检测字体是否可用,如果不可用则警告用户安装? 系统详细信息:Windows-10 64 位上的老式 LabWindows-8.5。尝试搜索 Google 和 National Instruments 但没有找到答案。 也试过这个代码:
char buff[1024];
int xx = GetFontTypefaceName("Digital-7", buff);
但它总是 returns xx=9 和 buff="Digital-7" 不管测试计算机上是否安装了字体。
这是设计时 LabWindows 检测到字体已安装的情况:Font found
来自 Ni forum got a hint that indeed GetFontTypefaceName would be the way to go. Unfortunately it works in CVI versions 2009 or newer and I'm stuck with 8.5(2008). Most probably it was bugfixed in 9.0 or newer but didn't find any trace in their changelogs.