CListBox::SetTabStops
設定清單方塊的定位停駐點 (Tab Stop) 位置。
void SetTabStops( );
BOOL SetTabStops(
const int& cxEachStop
);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops
);
參數
cxEachStop
定位停駐點設定每一個 cxEachStop 對話方塊單位。 以對話方塊單位的說明請參閱 rgTabStops 。nTabStops
在清單方塊中指定定位停駐點數目有。rgTabStops
物件陣列的第一個成員的點包含以對話方塊單位的整數定位停駐點 (Tab Stop) 位置。 對話方塊單位為水平或垂直距離。 一個層級的對話方塊單位等於目前對話基底寬度單位的四分之一,,和一個垂直對話方塊單位等於八分之一目前對話基底高度單位。 對話方塊的基本單位是以目前系統字型的高度和寬度計算。 GetDialogBaseUnits Windows 函式傳回像素中目前對話基本單位。 依遞增順序排序必須定位停駐點 (Tab Stop);回復選項不允許的。
傳回值
如果不是零,則所有選項設定;則為 0。
備註
若要設定定位停駐點加入至 2 個對話方塊單位的預設大小,請呼叫此成員函式無參數的版本。 2 以外,若要設定定位停駐點加入至大小,請使用 cxEachStop 引數的版本。
若要設定定位停駐點加入至大小,請使用 rgTabStops 和 nTabStops 引數的版本。 定位停駐點 (Tab Stop) 為 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