CListBox::SetTabStops
リスト ボックスのタブ ストップ位置を設定します。
void SetTabStops( );
BOOL SetTabStops(
const int& cxEachStop
);
BOOL SetTabStops(
int nTabStops,
LPINT rgTabStops
);
パラメーター
cxEachStop
タブ位置は、cxEachStop のダイアログ単位で設定されます。ダイアログ単位については、rgTabStops を 参照してください。nTabStops
タブ ストップの数をリスト ボックスに表示する指定します。rgTabStops
ダイアログ単位のタブ ストップ位置を表す整数の配列の最初のメンバーへのポインター。ダイアログ単位は水平方向または垂直方向の距離です。1 個の水平方向のダイアログ単位は現在のダイアログの基本単位の幅の 4 分の 1 に等しく、1 の垂直ダイアログ単位は現在のダイアログの基本単位の高さの 8 分の 1 と同じです。ダイアログの基本単位は現在のシステム フォントの高さと幅に基づいて計算されます。GetDialogBaseUnits Windows 関数は、ピクセルの現在のダイアログの基本単位を返します。タブ位置は昇順に並べ替える必要があります。; [戻る]タブは使用されません。
戻り値
すべてのタブが設定されている場合は、; それ以外の場合は 0。
解説
2 種類のダイアログ単位の既定のサイズにタブ ストップを設定するには、このメンバー関数のパラメーターなしのバージョンを呼び出します。2 以外のサイズにタブ ストップを設定するには、cxEachStop の引数を持つバージョンを呼び出します。
サイズの配列にタブ ストップを設定するには、rgTabStops と nTabStops の引数は、バージョンを使用します。タブ位置は nTabStopsで指定された数まで rgTabStopsの各値に設定します。
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()));
必要条件
ヘッダー: afxwin.h