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

最佳答案

作为MSDN says


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


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

由于API使用的是当前选择的字体,因此要进行更改,您需要具有新的字体句柄(通常可以预先创建它,或者使用例如HFONTCreateFont API获得CreateFontIndirect字体句柄)。然后,在调用DrawText之前,您可以使用SelectObject用您自己的字体替换当前选定的字体,完成后,您可以通过另一个SelectObject调用将原始字体放回原处。

关于c# - 在DrawText win32函数中设置格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12880919/

10-11 21:33