CListBox::SetTabStops

将列表框的制表位位置。

void SetTabStops( );
BOOL SetTabStops(
   const int& cxEachStop 
);
BOOL SetTabStops(
   int nTabStops,
   LPINT rgTabStops 
);

参数

  • cxEachStop
    制表位设置每 cxEachStop 对话框单位。对于对话框单位的声明参见 rgTabStops

  • nTabStops
    在列表框中指定制数具有。

  • rgTabStops
    指向的第一个成员包含在对话框单位的整数制表位位置。对话框单位是一个水平或垂直距离。一个水平对话框单位相等到当前对话框基础宽度单位的四分之一,因此,一个垂直对话框单位相等到八分之一当前对话框基础高度单位。对话框基本单元根据当前系统字体的高度和宽度计算。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

请参见

参考

CListBox选件类

层次结构图

LB_SETTABSTOPS

GetDialogBaseUnits