当我通过Win32 API的DrawText函数绘制文本时
有没有办法确定将使用哪种字体,或确定字体大小,粗体或斜体?
PS我用C#编写
最佳答案
作为MSDN says,
DrawText函数使用设备上下文的选定字体,文本颜色和背景颜色来绘制文本。
这意味着您可以从设备上下文中获取当前字体句柄,然后获取LOGFONT
结构,该结构为您提供有关所请求字体的详细信息。
由于API使用的是当前选择的字体,因此要进行更改,您需要具有新的字体句柄(通常可以预先创建它,或者使用例如HFONT
或CreateFont
API获得CreateFontIndirect
字体句柄)。然后,在调用DrawText
之前,您可以使用SelectObject
用您自己的字体替换当前选定的字体,完成后,您可以通过另一个SelectObject
调用将原始字体放回原处。
关于c# - 在DrawText win32函数中设置格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12880919/