TextOut

【勇芳软件工作室】汉化HomePreviousNext

TextOut函数使用当前选定的字体在指定的位置写入一个字符串。

BOOL TextOut(

HDC 【HDC】,//设备上下文的句柄
INT 【nXStart】,//起始位置的x坐标
INT 【nYStart】,//起始位置的y坐标
LPCTSTR 【lpString】,//字符串的地址
INT 【cbString】//字符串中的字符数
); 

参数

【HDC】

标识设备上下文。

【nXStart】

指定Windows用于对齐字符串的参考点的逻辑x坐标。

【nYStart】

指定Windows用于对齐字符串的参考点的逻辑y坐标。

【lpString】

指向要绘制的字符串。字符串不需要为零终止,因为【cbString】指定字符串的长度。

【cbString】

指定字符串中的字符数。

返回值

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

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

参考点的解释取决于当前文本对齐模式。应用程序可以通过调用GetTextAlign函数来检索此模式;应用程序可以通过调用SetTextAlign功能来改变此模式。

默认情况下,此函数不会使用或更新当前位置。但是,应用程序可以使用【FMODE】参数设置为TA_UPDATECP来调用SetTextAlign函数,以允许Windows在每次应用程序为指定的设备上下文调用TextOut时使用和更新当前位置。设置此标志时,Windows会忽略后续TextOut呼叫中的【nXStart】【nYStart】参数。

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

//获取窗口的客户端矩形

GetClientRect(hwnd, &r);

// FIX:通过设置背景模式

//透明,区域是文本本身

// SetBkMode(hdc,TRANSPARENT);

//括号开始一个路径

BeginPath(hdc);

//发送一些文本到世界

TextOut(hdc, r.left, r.top, "Defenestration can be hazardous", 4);

//括号结束路径

EndPath(hdc);

//从该路径导出区域

SelectClipPath(hdc, RGN_AND);

//这会产生与SelectClipPath()相同的结果

// SelectClipRgn(hdc,PathToRegion(hdc));

//填写该区域的灰色

FillRect(hdc, &r, GetStockObject(GRAY_BRUSH));

也可以看看

GetTextAlign, SetTextAlign, TabbedTextOut