Метод StringFormat::GetTabStops (gdiplusstringformat.h)
Метод StringFormat::GetTabStops получает смещения значений табуляции в этом объекте StringFormat .
Синтаксис
Status GetTabStops(
[in] INT count,
[out] REAL *firstTabOffset,
[out] REAL *tabStops
);
Параметры
[in] count
Тип: INT
Целое число, указывающее количество смещения табуляции в массиве tabStops .
[out] firstTabOffset
Тип: REAL*
Указатель на объект REAL , который получает начальную позицию смещения. Эта начальная позиция смещения относится к источнику строки, а смещение первой позиции табуляции — относительно начальной позиции смещения.
[out] tabStops
Тип: REAL*
Указатель на массив типа REAL , который получает смещения табуляции. Смещение первой позиции табуляции — это первое значение в массиве, смещение второй позиции табуляции, второе значение в массиве и т. д.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления 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 |
Header | gdiplusstringformat.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |