首页 文章

Windows API选择粗体字体

提问于
浏览
0

我正在尝试编写一些代码来选择粗体字体(我实际上想要将字体文件名发送到跨平台字体渲染器,但这不太相关) . 我使用CreateFont()将cWeight设置为FW_BOLD,将pszFaceName设置为“Arial” . 我将此字体选择为DC并使用GetTextFace()来检查实际选择的字体 . 结果是Arial . 我很惊讶,字体不是Arial Bold,这是一个单独的面,有不同的字体文件 . 指定Arial Bold字体的唯一方法是将pszFaceName设置为“Arial Bold” . 不幸的是,简单地将Bold附加到字体名称的末尾仅适用于某些字体,因为某些字体没有单独的粗体字体 .

是否有任何通用的方法来指定粗体,以确保返回字体的实际粗体版本?

谢谢

菲尔

1 回答

  • 2

    这不是它的工作方式,Windows字体映射器不会替换面部名称 . “Arial Bold”不是标准字体,也不与标准“Arial”字体有任何关系 . 如果你想使用它,你将不得不要求它 .

    使用FW_BOLD请求“Arial”选择c:\ windows \ fonts \ arialbd.ttf字体文件 . 一个明确设计用于呈现粗体arial的字体文件 . 面部名称为“Arial” . 同样,ariali.ttf提供斜体版本,arialbi.ttf提供粗体斜体版本,arial.ttf是正常版本 .

相关问题