次の方法で共有


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

参照

関連項目

CEditView クラス

階層図

CWnd::SetFont

CEditView::SetPrinterFont