• 文档 /
  • TabbedTextOut-将字符串写入指定位置,将制表符展开为制表位数组中指定的值

平台 SDK: Windows GDI

TabbedTextOut

TabbedTextOut函数将字符串写入指定位置,将制表符展开为制表位数组中指定的值。 文字以当前选择的字体,背景颜色和文字颜色书写。

LONG TabbedTextOut(
  HDC hDC,                         // 设备环境句柄
  int X,                           // 开始的x-coord
  int Y,                           // 开始的y坐标
  LPCTSTR lpString,                // 字符串
  int nCount,                      // 字符数
  int nTabPositions,               // 数组中的选项卡数量
  CONST LPINT lpnTabStopPositions, // tab位置数组
  int nTabOrigin                   // tab扩展的开始
);

参数

  • hDC

  • [in] 设备环境句柄。

  • X

  • [in] 以逻辑单位指定字符串起点的x坐标。

  • Y

  • [in] 以逻辑单位指定字符串起点的y坐标。

  • lpString

  • [in] 指向要绘制的字符串的指针。 该字符串不需要以零终止,因为nCount指定了字符串的长度。

  • nCount

  • [in] 指定由lpString指向的字符串的长度。 对于ANSI函数,它是BYTE计数,对于Unicode函数,它是WORD计数。 请注意,对于ANSI函数,SBCS代码页中的字符每个需要一个字节,而DBCS代码页中的大多数字符需要两个字节; 对于Unicode函数,大多数当前定义的Unicode字符(基本多语言平面(BMP)中的那些字符)是一个WORD,而Unicode代理是两个WORD。

    Windows 95/98/Me: 该值不得超过8192。

  • nTabPositions

  • [in] 指定tab位置数组中值的数量。

  • lpnTabStopPositions

  • [in] 指向包含制表符位置的数组的逻辑单元。 制表位必须按递增顺序排序; 最小的x值应该是数组中的第一项。

    Windows 95/98/Me: tab可以指定为负值,这会导致文本在制表位上右对齐,而不是左对齐。

  • nTabOrigin

  • [in] 以逻辑单位指定从中扩展制表符的起始位置的x坐标。

返回值

如果函数成功,则返回值是字符串的维数(以逻辑单位表示)。 高度在高位字中,宽度在低位字中。

如果函数失败,返回值为零。

Windows NT/2000/XP: 要获得扩展的错误信息,请调用GetLastError。

备注

如果nTabPositions参数为零并且lpnTabStopPositions参数为NULL,则选项卡将扩展为平均字符宽度的八倍。

如果nTabPositions为1,则制表位将按照lpnTabStopPositions数组中第一个值指定的距离分隔。

如果lpnTabStopPositions数组包含多个值,则会为数组中的每个值设置一个制表符,最多为由nTabPositions指定的数字。

nTabOrigin参数允许应用程序为单行调用TabbedTextOut函数几次。 如果应用程序每次调用TabbedTextOut多次并将nTabOrigin设置为相同的值,则该函数将扩展与nTabOrigin指定的位置相关的所有选项卡。

默认情况下,TabbedTextOut函数不使用或更新当前位置。 如果应用程序在调用TabbedTextOut时需要更新当前位置,则应用程序可以调用SetTextAlign函数,并将wFlags参数设置为TA_UPDATECP。 设置此标志时,系统会在随后调用TabbedTextOut函数时忽略X和Y参数,而不是使用当前位置。

Windows 95/98/Me: TabbedTextOutW由Microsoft层为Unicode支持。 要使用它,必须将某些文件添加到应用程序中,如Windows 95/98/Me系统上的Microsoft Layer for Unicode所述。

示例代码

有关示例,请参阅获取硬件信息。

要求

  Windows NT/2000/XP: 包含在Windows NT 3.51和更高版本中。

  Windows 95/98/Me: 包含在Windows 95和更高版本中。

  头文件: 声明于 Winuser.h; 包含于 Windows.h.
  库: 使用 User32.lib.
  Unicode: 在Windows NT/2000/XP上作为Unicode和ANSI版本实现。 Microsoft层还支持Unicode。