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