【问题标题】:set format in DrawText win32 function在 DrawText win32 函数中设置格式
【发布时间】:2012-10-14 17:45:39
【问题描述】:

当我通过 Win32 API 的 DrawText 函数绘制文本时
有没有办法确定将使用哪种字体,或确定字体大小、粗体或斜体?
PS我用C#写的

【问题讨论】:

  • DrawText() 将在您传递的设备上下文中使用当前选择的字体。您必须创建适当的HFONT 并使用SelectObject() 将其与您的HDC 关联(并保存返回的句柄以在完成后恢复它),这可能很乏味。您有什么理由使用 Win32 而不是托管 API?
  • winForms 的 DrawString 以磅为单位用于字体大小,我想用于小比例单位。

标签: c# winapi


【解决方案1】:

作为MSDN says

DrawText 函数使用设备上下文的选定字体、文本颜色和背景颜色来绘制文本。

这意味着您可以从设备上下文中获取当前字体句柄,然后获取LOGFONT 结构,该结构为您提供有关您请求的字体的详细信息。

由于 API 使用当前选定的字体,要更改它,您需要有可用的新字体句柄(您通常预先创建它,或者使用例如 CreateFontCreateFontIndirect API 获取 HFONT 字体句柄) .然后在调用DrawText 之前,您使用SelectObject 将当前选定的字体替换为您自己的字体,完成后您将使用另一个SelectObject 调用放回原来的字体。

【讨论】:

    猜你喜欢
    • 2011-12-26
    • 2010-12-18
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    相关资源
    最近更新 更多