Метод 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

См. также раздел

Форматирование текста

Состояние

Stringformat