在DrawText win32函数中设置格式

时间:2012-10-14 09:29:11

标签: c# winapi

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

1 个答案:

答案 0 :(得分:6)

作为MSDN says

  

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

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

由于API使用当前选择的字体,要更改它,您需要使用新的字体句柄(通常使用例如CreateFont或{预先创建它,或以其他方式获得HFONT字体句柄{1}} API)。然后在致电CreateFontIndirect之前,使用DrawText将您当前选择的字体替换为您自己的字体,一旦完成,您可以使用另一个SelectObject电话将原始字体放回原位。