CEditView::SetTabStops
タブ位置を表示および印刷のために使用する設定するには、この関数を呼び出します。
void SetTabStops(
int nTabStops
);
パラメーター
- nTabStops
ダイアログ単位の各タブ ストップの幅。
解説
単一のタブ ストップの幅のみサポートされます。(CEdit のオブジェクトを複数のタブの幅をサポートします。) 幅は印刷時の表示に使用されるフォントの平均幅の 4 分の 1 文字 (大文字と小文字のアルファベットに基づいて) ダイアログ単位とする比率にあります。CEditView がタブ ストップの値をキャッシュする必要があるため CEdit::SetTabStops を使用する必要があります。
この関数は、が呼び出されるオブジェクトのタブのみが変更されます。各 CEditView のタブの位置を変更するには、アプリケーションに、を呼び出します。各オブジェクトの SetTabStops 関数を取得します。
使用例
このコードは、4 番目の文字に慎重にコントロールが使用するフォントを測定することによって、コントロールのタブ ストップを設定します。
// gain a reference to the edit control
CEdit& theEdit = GetEditCtrl();
// get the font the control is using
CFont* pFont = theEdit.GetFont();
TEXTMETRIC tm;
// get the control's DC, too
CDC* pDC = theEdit.GetDC();
// Select the font that the control uses by default into the DC.
// We must do this because the control may or may not be using
// that font at this exact moment
CFont* pOldFont = pDC->SelectObject(pFont);
// Retrieve text metrics for that font and return the previously
// selected font.
pDC->GetTextMetrics(&tm);
pDC->SelectObject(pOldFont);
// Get an identity rectangle and map it to dialog units
CRect rect(0, 0, 100, 1);
::MapDialogRect((HWND)this, rect);
// We now know that 100 dialog units are rect.Width() screen units,
// so we can multiply screen units by 100 and divide by rect.Width()
// to find dialog units from screen units. tm.tmAveCharWidth is
// the width of _one_ character, so setting the tabs at every
// four characters means we also multiply by four.
SetTabStops((4 * tm.tmAveCharWidth * 100) / rect.Width());
必要条件
ヘッダー: afxext.h