【发布时间】:2018-03-02 00:54:04
【问题描述】:
当我将TRichEdit 控件的TFont Name 属性设置为“Courier”时,字体将变为Courier。
Edit->Font->Name = "Courier";
如果我想使用一种我不确定系统是否支持的字体(例如,在较旧的操作系统上)怎么办? 据我目前所知,如果我为 TFont 属性分配一个“未知”名称,实际字体不会改变,系统会处理它并坚持使用以前的字体,但是我如何以编程方式检查这个?
我想知道字体是否真的改变了(因为字体可用/已安装)?
或者我需要查询Screen->Fonts 来确定Name 是否在列表中?
仅供参考:使用 Borland C++ Builder (2009),但我确信也与 Delphi 相关。
【问题讨论】:
-
简单:获取已安装字体的列表,并检查您的字体是否在该列表中。听起来你已经有了这个解决方案。
-
(未测试)分配新的
Font设置后,使用HFONT hFont = (HFONT) SendMessage(Edit->Handle, WM_GETFONT, 0, 0); LOGFONT fnt = {0}; ::GetObject(hFont, sizeof(LOGFONT), &fnt);查询实际分配的字体,看看fnt是否包含您所期望的。
标签: delphi c++builder vcl