2011-11-11 189 views
15

我发现以前都使用过这两个函数,但我不太明白它们之间的区别。那么,我知道DrawText需要一个格式化的矩形,并且可以进行一些文本格式设置,并且只输出起始坐标,还有其他区别吗?DrawText VS TextOut Win32

回答

16

DrawText

  • 它绘制文本字符串转换成逻辑坐标指定的矩形区域中。
  • 它提供了格式化多行文字的便捷方式。
  • 它主要用于 wordbreaking段落格式,扩大标签等

TextOut

  • 这是一个简单的文本,绘图功能,易于使用。
  • 它使用当前选定的文本属性在指定位置绘制字符串。
  • 文字 要绘制的字符串不需要被零终止。

而且,看看ExTextOutDrawTextEx

+2

另外:DrawText尊重字距,TextOut不尊重 – BeyelerStudios

2

绘制文本可以用来给出文本的长度或大小而不实际显示它。当你必须修改一组字符串的最大显示长度时,这非常有用。另外,如果您在DrawText中提供以null结尾的字符串作为输入,则不需要提供字符串的长度 - 这是自动创建的。

看看thisthis

3

DrawText()是User32.dll中

TextOut()是GDI32.DLL

DrawText的是最有可能在其实现调用的TextOut。