我正在尝试编写一些代码来选择粗体字体(实际上我想要获取字体文件名以发送到跨平台字体渲染器,但这并不太相关)。我使用CreateFont()将cWeight设置为FW_BOLD,将pszFaceName设置为"Arial“。我将此字体选择到DC中,并使用GetTextFace()检查实际选择了哪种字体。结果是Arial。令我惊讶的是字体不是Arial Bold,这是一个具有不同字体文件的单独的面孔。指定Arial Bold字体的唯一方法是将pszFaceName设置为"Arial Bold“。不幸的是,简单地将粗体附加到字体名称的末尾只对某些字体有效,因为有些字体没有单独的粗体。
有没有什么通用的方法来指定粗体,以确保返回字体的实际粗体版本?
谢谢
菲尔
发布于 2012-07-10 08:34:34
这不是它的工作方式,Windows字体映射器不会替换面孔名称。"Arial Bold“不是标准字体,也与标准"Arial”字体没有任何关系。如果你想使用它,那么你必须要它。
在FW_BOLD中输入"Arial“将选择c:\windows\fonts\arialbd.ttf字体文件。一种字体文件,专门设计成用粗体表示。脸的名字是"Arial“。同样,ariali.ttf提供斜体版本,arialbi.ttf提供粗体斜体版本,arial.ttf是普通版本。
https://stackoverflow.com/questions/11404922
复制相似问题