win32con.DT_ *有哪些选项? Windows的python绘制文本

时间:2019-02-22 13:40:42

标签: python winapi pywin32 win32gui drawtext

我只是在Windows的python中找不到绘制文本函数的不同选项。 我希望我正在绘制的文本位于屏幕的左下角,而不是顶部中心。 如果不能选择左下角,是否可以将底部居中?

        win32gui.DrawText(hdc, windowText, -1, rect,
        win32con.DT_CENTER | win32con.DT_VCENTER
    )

是否有诸如

之类的选项
win32con.DT_LEFT | win32con.DT_BOTTOM

在Microsoft或python文档上,我无法在线找到此代码段的任何相关信息。

1 个答案:

答案 0 :(得分:1)

您可以在Microsoft网站上看​​到有关相应WinAPI功能的大量文档:

DrawText

  

参数...

     

DT_BOTTOM

     

将文本对齐到矩形的底部。使用该值   仅带有DT_SINGLELINE值。

如上所述,DT_BOTTOM仅在指定DT_SINGLELINE时有效。因此,您需要:

win32con.DT_LEFT | win32con.DT_BOTTOM | win32con.DT_SINGLELINE


请注意,这不足以绘制与矩形底部对齐的多条线。在这种情况下,请使用DT_CALCRECT标志来计算要绘制的文本的高度。然后根据计算出的矩形的高度偏移矩形。示例:

textformat = win32con.DT_LEFT | win32con.DT_BOTTOM
calrect = win32gui.DrawText(hdc, text, -1, rect, textformat | win32con.DT_CALCRECT);

rect.top = rect.bottom - calcrect.bottom;
win32gui.DrawText(hDC, text, -1, rect, textformat)