CListBox::SetTabStops
Establece las posiciones de la interrupción de tabulación en un cuadro de lista.
void SetTabStops( );
BOOL SetTabStops(
const int& cxEachStop
);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops
);
Parámetros
cxEachStop
las tabulaciones se establecen en las unidades de cada diálogo de cxEachStop . Vea los rgTabStops para obtener una descripción de una unidad de cuadro de diálogo.nTabStops
especifica el número de tabulaciones para tener en el cuadro de lista.rgTabStops
Señala al primer miembro de una matriz de enteros que contienen las posiciones de la interrupción de tabulación en unidades de cuadro de diálogo. Una unidad de cuadro de diálogo es una distancia horizontal o vertical. Una unidad horizontal del diálogo es igual a un cuarto de la unidad de ancho actual del diálogo, y una unidad vertical del diálogo es igual al uno-octava unit actual del alto del diálogo. Las unidades base de diálogo se calculan según el alto y ancho de fuentes del sistema actual. La función de GetDialogBaseUnits Windows devuelve las unidades base actuales del diálogo en píxeles. Las tabulaciones deben ordenar en sentido orden; las fichas posteriores no se permiten.
Valor devuelto
Distinto de cero si todas las pestañas se establecieron; si no 0.
Comentarios
Para establecer las tabulaciones el tamaño predeterminado de 2 unidades de cuadro de diálogo, llame a la versión sin parámetros de esta función miembro. Para establecer las tabulaciones a un tamaño distinto de 2, llame a la versión con el argumento de cxEachStop .
Para establecer las tabulaciones en una matriz de tamaño, utilice la versión con argumentos de rgTabStops y de nTabStops . Una tabulación se establecerá por cada valor de rgTabStops, hasta el número especificado por nTabStops.
Para responder a una llamada a la función miembro de SetTabStops , el cuadro de lista debe haberse creado con el estilo de LBS_USETABSTOPS .
Ejemplo
// 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()));
Requisitos
encabezado: afxwin.h