CListBox::SetTabStops
Устанавливает позицию табуляции в списке.
void SetTabStops( );
BOOL SetTabStops(
const int& cxEachStop
);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops
);
Параметры
cxEachStop
Позиции табуляции устанавливаются на единиц каждого диалога cxEachStop. См. раздел rgTabStops описание единицы измерения диалогового окна.nTabStops
Указывает число позиций табуляции, чтобы иметь в списке.rgTabStops
Точки к первому элементу массива целых чисел, содержащую позиции табуляции в единицах диалогового окна. Единица диалогового окна горизонтальное или вертикальное диапазон. Одна горизонтальная единица диалогового окна равна до 1/4 из текущей ширины блока базовое диалоговое окно, и одна вертикальная единица диалогового окна равна до 1/8 из текущей высоты единицы измерения базового диалогового окна. Вычислены базовые единицы диалогового окна на основе высоте и ширине текущего шрифта системы. Функция GetDialogBaseUnits Windows возвращает текущие базовые единицы измерения диалогового окна в пикселях. Позиции табуляции должен быть отсортирован по возрастанию; задние вкладки не разрешены.
Возвращаемое значение
Ненулевой если все вкладки были установлены; в противном случае – значение 0.
Заметки
Для установки позиции табуляции по умолчанию 2 единиц размера диалогового окна, без параметров версия этого вызовите функцию-член. Для установки позиции табуляции до размера, отличное от 2, вызовите версию с аргументом cxEachStop.
Для установки позиции табуляции в массив размера, используйте версию с аргументами rgTabStops и nTabStops. Позиция табуляции будет установлена для каждого значения в rgTabStops до числа, определенного nTabStops.
Чтобы ответить на вызов к функции-члену SetTabStops список должны быть созданы с учетом LBS_USETABSTOPS.
Пример
// Find the pixel width of the largest first substring.
CString str;
CSize sz;
int nIndex, dx = 0;
CDC* pDC = myListBox.GetDC();
for (int i = 0; i < myListBox.GetCount(); i++)
{
myListBox.GetText( i, str );
if ((nIndex = str.Find('\t')) != -1)
str = str.Right(nIndex);
sz = pDC->GetTextExtent(str);
if (sz.cx > dx)
dx = sz.cx;
}
myListBox.ReleaseDC(pDC);
// Set tab stops at every one and 1/3 units
// of the largest string.
// NOTE: Convert pixels to dialog units.
myListBox.SetTabStops((dx*4/3 * 4) / LOWORD(::GetDialogBaseUnits()));
Требования
Header: afxwin.h