TextOutA 函数 (wingdi.h)

TextOut 函数使用当前所选字体、背景色和文本颜色在指定位置写入字符串。

语法

BOOL TextOutA(
  [in] HDC    hdc,
  [in] int    x,
  [in] int    y,
  [in] LPCSTR lpString,
  [in] int    c
);

参数

[in] hdc

设备上下文的句柄。

[in] x

系统用来对齐字符串的引用点的 x 坐标(以逻辑坐标为单位)。

[in] y

系统用来对齐字符串的引用点的 y 坐标(以逻辑坐标为单位)。

[in] lpString

指向要绘制的字符串的指针。 该字符串不需要以零结尾,因为 cchString 指定字符串的长度。

[in] c

lpString所指向的字符串的 长度(以字符为单位)。

返回值

如果函数成功,则返回值为非零。

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

言论

引用点的解释取决于当前文本对齐模式。 应用程序可以通过调用 GetTextAlign 函数来检索此模式;应用程序可以通过调用 SetTextAlign 函数来更改此模式。 可以使用以下值进行文本对齐。 只能从影响水平和垂直对齐的标志中选择一个标志。 此外,只能选择更改当前位置的两个标志之一。

术语 描述
TA_BASELINE 引用点将位于文本的基行上。
TA_BOTTOM 引用点位于边界矩形的下边缘。
TA_TOP 引用点位于边界矩形的上边缘。
TA_CENTER 引用点将与边界矩形的中心水平对齐。
TA_LEFT 引用点将位于边界矩形的左边缘。
TA_RIGHT 引用点位于边界矩形的右边缘。
TA_NOUPDATECP 每次文本输出调用后,当前位置都不会更新。 引用点将传递给文本输出函数。
TA_RTLREADING 中东语言版本的 Windows: 文本按从右到左的阅读顺序布局,而不是默认的从左到右的顺序。 这仅适用于在设备上下文中选择的字体为希伯来语或阿拉伯语时。
TA_UPDATECP 每次文本输出调用后,当前位置都会更新。 当前位置用作引用点。
 

默认情况下,此函数不使用或更新当前位置。 但是,应用程序可以调用 SetTextAlign 函数,并将 fMode 参数设置为TA_UPDATECP,以允许系统每次为指定的设备上下文调用 TextOut 时使用和更新当前位置。 设置此标志后,系统会在后续的 TextOut 调用中忽略 nXStartnYStart 参数。

TextOut 函数放置在路径括号内时,系统将生成包含每个字符及其字符框的 TrueType 文本的路径。 生成的区域是字符框减去文本,而不是文本本身。 通过在路径括号中放置 TextOut 函数之前,可以将背景模式设置为透明来获取 TrueType 文本轮廓所包围的区域。 下面是演示此过程的示例代码。


// Obtain the window's client rectangle 
GetClientRect(hwnd, &r);

// THE FIX: by setting the background mode 
// to transparent, the region is the text itself 
// SetBkMode(hdc, TRANSPARENT); 

// Bracket begin a path 
BeginPath(hdc);

// Send some text out into the world 
TCHAR text[ ] = "Defenestration can be hazardous";
TextOut(hdc,r.left,r.top,text, ARRAYSIZE(text));

// Bracket end a path 
EndPath(hdc);

// Derive a region from that path 
SelectClipPath(hdc, RGN_AND);

// This generates the same result as SelectClipPath() 
// SelectClipRgn(hdc, PathToRegion(hdc)); 

// Fill the region with grayness 
FillRect(hdc, &r, GetStockObject(GRAY_BRUSH));

例子

有关示例,请参阅 枚举已安装字体

注意

wingdi.h 标头将 TextOut 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 wingdi.h (包括 Windows.h)
Gdi32.lib
DLL Gdi32.dll

另请参阅

字体和文本功能

字体和文本概述

GetTextAlign

SelectObject

SetBkColor

SetTextAlign

SetTextColor

TabbedTextOut