StringFormat::GetTabStops 方法 (gdiplusstringformat.h)
StringFormat::GetTabStops 方法获取此 StringFormat 对象中制表位的偏移量。
语法
Status GetTabStops(
[in] INT count,
[out] REAL *firstTabOffset,
[out] REAL *tabStops
);
parameters
[in] count
类型: INT
指定 tabStops 数组中制表位偏移量的整数。
[out] firstTabOffset
类型: REAL*
指向接收初始偏移位置的 REAL 的指针。 此初始偏移位置相对于字符串的原点,第一个制表位的偏移量相对于初始偏移位置。
[out] tabStops
类型: REAL*
指向 REAL 类型的数组 的指针,该数组接收制表位偏移量。 第一个制表位的偏移量是数组中的第一个值、第二个制表位的偏移量、数组中的第二个值等。
返回值
类型: 状态
如果该方法成功,则返回 Ok,这是 Status 枚举的元素。
如果方法失败,它将返回 Status 枚举的其他元素之一。
注解
tabStops 数组中的每个制表位偏移量(第一个偏移量除外)都相对于前一个偏移量。 第一个制表位偏移量相对于 firstTabOffset 指示的初始偏移位置。 例如,如果初始偏移位置为 8,第一个制表位偏移量为 50,则第一个制表位位于位置 58。 如果初始偏移位置为零,则第一个制表位偏移量相对于位置 0,即字符串原点。
示例
以下示例创建 StringFormat 对象,设置制表位,并使用 StringFormat 对象绘制包含制表符的字符串 (\t) 。 该代码还会绘制字符串的布局矩形。 然后,代码获取制表位,并继续以某种方式使用或检查制表位。
VOID Example_GetTabStop(HDC hdc)
{
Graphics graphics(hdc);
REAL tabs[] = {150, 100, 100};
FontFamily fontFamily(L"Courier New");
Font font(&fontFamily, 12, FontStyleRegular, UnitPoint);
SolidBrush solidBrush(Color(255, 0, 0, 255));
StringFormat stringFormat;
stringFormat.SetTabStops(0, 3, tabs);
graphics.DrawString(
L"Name\tTest 1\tTest 2\tTest 3",
25,
&font,
RectF(20, 20, 500, 100),
&stringFormat,
&solidBrush);
// Draw the rectangle that encloses the text.
Pen pen(Color(255, 255, 0, 0));
graphics.DrawRectangle(&pen, 20, 20, 500, 100);
// Get the tab stops.
INT tabStopCount = 0;
REAL firstTabOffset = 0;
REAL* tabStops = NULL;
tabStopCount = stringFormat.GetTabStopCount();
tabStops = (REAL*)malloc(tabStopCount*sizeof(REAL));
stringFormat.GetTabStops(tabStopCount, &firstTabOffset, tabStops);
for(INT j = 0; j < tabStopCount; ++j)
{
// Inspect or use the value in tabStops[j].
}
}
要求
最低受支持的客户端 | Windows XP、Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | gdiplusstringformat.h (包括 Gdiplus.h) |
Library | Gdiplus.lib |
DLL | Gdiplus.dll |
另请参阅
StringFormat