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
返回值
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。
言论
引用点的解释取决于当前文本对齐模式。 应用程序可以通过调用 GetTextAlign 函数来检索此模式;应用程序可以通过调用 SetTextAlign 函数来更改此模式。 可以使用以下值进行文本对齐。 只能从影响水平和垂直对齐的标志中选择一个标志。 此外,只能选择更改当前位置的两个标志之一。
默认情况下,此函数不使用或更新当前位置。 但是,应用程序可以调用 SetTextAlign 函数,并将 fMode 参数设置为TA_UPDATECP,以允许系统每次为指定的设备上下文调用 TextOut 时使用和更新当前位置。 设置此标志后,系统会在后续的 TextOut 调用中忽略 nXStart 和 nYStart 参数。
当 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 |