使用DrawText时,TextFormatFlags.Internal(a.k.a. DT_INTERNAL)做什么?

时间:2010-04-25 06:34:00

标签: winforms winapi fonts gdi drawtext

使用TextRenderer.DrawText()时,设置TextFormatFlags.Internal标志实际上做了什么?

等效地,将DT_INTERNAL标志设置为Win32的DrawTextEx()函数会做什么?

更重要的是,我何时应该设置该标志,何时不应该设置它?

文档说:“使用系统字体计算文本指标”,但我不完全确定这意味着什么。我做了一些有限的测试,设置标志似乎改变了字体在使用小字体时的呈现方式,但在使用大字体时似乎没有什么区别。

1 个答案:

答案 0 :(得分:1)

这意味着无论您实际使用什么字体,它都会进行计算,就像您使用系统字体一样。例如,假设您的系统字体为12分。如果您使用30磅字体和DT_INTERNAL标志,则每条线仅对(12磅)系统字体而不是30磅字体足够高,因此每行文本将与前一行重叠。

“内部”基本上意味着“仅供Windows内部使用” - 我有理由相信我从未在任何实际代码中使用此标志。