CListBox::SetTabStops
Defina as posições de tabulação em uma caixa de listagem.
void SetTabStops( );
BOOL SetTabStops(
const int& cxEachStop
);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops
);
Parâmetros
cxEachStop
Paradas de tabulação são definidas em unidades de cada caixa de diálogo de cxEachStop .Consulte rgTabStops para obter uma descrição de uma unidade de diálogo.nTabStops
Especifica o número de paradas de tabulação para ter na caixa de listagem.rgTabStops
Aponta para o primeiro membro de uma matriz de inteiros que contêm as posições de tabulação em unidades de diálogo.Uma unidade de diálogo é a distância horizontal ou vertical.Uma unidade horizontal da caixa de diálogo é igual a um quarto da unidade atual da largura de base da caixa de diálogo, e uma unidade vertical da caixa de diálogo é igual ao de um oitava da unidade atual de altura de base da caixa de diálogo.As unidades base da caixa de diálogo são computadas com base na altura e a largura da fonte do sistema atual.A função do windows de GetDialogBaseUnits retorna as unidades base da caixa de diálogo atual em pixels.Paradas de tabulação devem ser classificadas na ordem crescente; não são permitidos para guias novamente.
Valor de retorno
Diferente de zero se todos os guias foram alterados; se não 0.
Comentários
Para definir paradas de tabulação para o tamanho padrão de 2 unidades de diálogo, chame a versão sem parâmetros da função de membro.Para definir paradas de tabulação para um tamanho diferente de 2, chame a versão com o argumento de cxEachStop .
Para definir paradas de tabulação em uma matriz de tamanho, use a versão com os argumentos de rgTabStops e de nTabStops .Uma parada de tabulação será definida para cada valor em rgTabStops, até o número especificado por nTabStops.
Para responder a uma chamada para a função de membro de SetTabStops , a caixa de listagem deve ter sido criada com o estilo de LBS_USETABSTOPS .
Exemplo
// 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
Cabeçalho: afxwin.h