CEdit クラス

Windows のエディット コントロールの機能が用意されています。

構文

class CEdit : public CWnd

メンバー

パブリック コンストラクター

名前 説明
CEdit::CEdit コントロール オブジェクトを CEdit 構築します。

パブリック メソッド

名前 説明
CEdit::CanUndo エディット コントロール操作を元に戻すことができるかどうかを指定します。
CEdit::CharFromPos 指定した位置に最も近い文字の行インデックスと文字インデックスを取得します。
CEdit::Clear 編集コントロールの現在の選択範囲 (ある場合) を削除 (クリア) します。
CEdit::Copy 編集コントロールの現在の選択範囲 (ある場合) をクリップボードにCF_TEXT形式でコピーします。
CEdit::Create Windows 編集コントロールを作成し、オブジェクトに CEdit アタッチします。
CEdit::Cut 編集コントロールの現在の選択範囲 (ある場合) を削除 (切り取り) し、削除したテキストをCF_TEXT形式でクリップボードにコピーします。
CEdit::EmptyUndoBuffer 編集コントロールの元に戻すフラグをリセット (クリア) します。
CEdit::FmtLines 複数行の編集コントロール内で、論理的な改行文字のオンとオフを設定します。
CEdit::GetCueBanner コントロールが空でフォーカスがない場合に、編集コントロールのテキスト キューまたはヒントとして表示されるテキストを取得します。
CEdit::GetFirstVisibleLine 編集コントロールの一番上に表示される行を指定します。
CEdit::GetHandle 複数行の編集コントロールに現在割り当てられているメモリへのハンドルを取得します。
CEdit::GetHighlight 現在の編集コントロールで強調表示されているテキスト範囲内の開始文字と終了文字のインデックスを取得します。
CEdit::GetLimitText 含めることができるテキストの最大量を CEdit 取得します。
CEdit::GetLine 編集コントロールからテキスト行を取得します。
CEdit::GetLineCount 複数行の編集コントロールの行数を取得します。
CEdit::GetMargins この CEdit値の左余白と右余白を取得します。
CEdit::GetModify 編集コントロールの内容が変更されたかどうかを判断します。
CEdit::GetPasswordChar ユーザーがテキストを入力したときに編集コントロールに表示されるパスワード文字を取得します。
CEdit::GetRect 編集コントロールの書式設定の四角形を取得します。
CEdit::GetSel 編集コントロール内の現在の選択範囲の最初と最後の文字位置を取得します。
CEdit::HideBalloonTip 現在の編集コントロールに関連付けられているバルーン ヒントを非表示にします。
CEdit::LimitText ユーザーが編集コントロールに入力できるテキストの長さを制限します。
CEdit::LineFromChar 指定した文字インデックスを含む行の行番号を取得します。
CEdit::LineIndex 複数行の編集コントロール内の行の文字インデックスを取得します。
CEdit::LineLength 編集コントロール内の行の長さを取得します。
CEdit::LineScroll 複数行の編集コントロールのテキストをスクロールします。
CEdit::P aste クリップボードから現在のカーソル位置にある編集コントロールにデータを挿入します。 データは、クリップボードにCF_TEXT形式のデータが含まれている場合にのみ挿入されます。
CEdit::P osFromChar 指定した文字インデックスの左上隅の座標を取得します。
CEdit::ReplaceSel 編集コントロールの現在の選択範囲を、指定したテキストに置き換えます。
CEdit::SetCueBanner コントロールが空でフォーカスがない場合に、編集コントロールでテキスト キューまたはヒントとして表示されるテキストを設定します。
CEdit::SetHandle 複数行の編集コントロールで使用されるローカル メモリにハンドルを設定します。
CEdit::SetHighlight 現在の編集コントロールに表示されているテキストの範囲を強調表示します。
CEdit::SetLimitText このテキストに含めることができるテキストの最大量を CEdit 設定します。
CEdit::SetMargins この CEdit余白の左右の余白を設定します。
CEdit::SetModify 編集コントロールの変更フラグを設定またはクリアします。
CEdit::SetPasswordChar ユーザーがテキストを入力したときに編集コントロールに表示されるパスワード文字を設定または削除します。
CEdit::SetReadOnly 編集コントロールの読み取り専用の状態を設定します。
CEdit::SetRect 複数行の編集コントロールの書式設定の四角形を設定し、コントロールを更新します。
CEdit::SetRectNP コントロール ウィンドウを再描画せずに、複数行の編集コントロールの書式設定の四角形を設定します。
CEdit::SetSel 編集コントロール内の文字範囲を選択します。
CEdit::SetTabStops 複数行の編集コントロールのタブ位置を設定します。
CEdit::ShowBalloonTip 現在の編集コントロールに関連付けられているバルーン ヒントを表示します。
CEdit::Undo 最後の編集コントロール操作を元に戻します。

解説

編集コントロールは、ユーザーがテキストを入力できる四角形の子ウィンドウです。

編集コントロールは、ダイアログ テンプレートから作成することも、コード内で直接作成することもできます。 どちらの場合も、最初にコンストラクターCEditを呼び出してオブジェクトをCEdit構築し、次に Create メンバー関数を呼び出して Windows 編集コントロールを作成し、オブジェクトにCEditアタッチします。

構築は、派生 CEditクラス内の 1 ステップ プロセスにすることができます。 派生クラスのコンストラクターを記述し、コンストラクター内から呼び出 Create します。

CEdit から重要な機能 CWndを継承します。 オブジェクトからCEditテキストを設定および取得するには、メンバー関数 SetWindowTextGetWindowText を使用CWndします。これは、複数行コントロールであっても、編集コントロールの内容全体を設定または取得します。 複数行コントロールのテキスト行は、'\r\n' 文字シーケンスで区切られます。 また、編集コントロールが複数行の場合は、メンバー関数 GetLine、SetSel、GetSel、ReplaceSel を呼び出CEditして、コントロールのテキストの一部を取得および設定します

編集コントロールによって親 (通常は派生 CDialogしたクラス) に送信された Windows 通知メッセージを処理する場合は、メッセージ マップ エントリとメッセージ ハンドラー メンバー関数を各メッセージの親クラスに追加します。

各メッセージ マップ エントリの形式は次のとおりです。

ON_NOTIFICATION(id,memberFxn)

ここで id 、通知を送信する編集コントロールの子ウィンドウ ID と memberFxn 、通知を処理するために記述した親メンバー関数の名前を指定します。

親の関数プロトタイプは次のとおりです。

afx_msg void memberFxn ( );

潜在的なメッセージ マップ エントリの一覧と、親に送信されるケースの説明を次に示します。

  • ON_EN_CHANGE ユーザーが編集コントロールのテキストを変更した可能性のあるアクションを実行しました。 EN_UPDATE通知メッセージとは異なり、この通知メッセージは、Windows が表示を更新した後に送信されます。

  • ON_EN_ERRSPACE 編集コントロールは、特定の要求を満たすのに十分なメモリを割り当てることができません。

  • ON_EN_HSCROLL ユーザーが編集コントロールの水平スクロール バーをクリックします。 画面が更新される前に、親ウィンドウに通知されます。

  • ON_EN_KILLFOCUS 編集コントロールは入力フォーカスを失います。

  • ON_EN_MAXTEXT 現在の挿入が編集コントロールの指定した文字数を超え、切り捨てられました。 また、編集コントロールにES_AUTOHSCROLLスタイルが設定されておらず、挿入する文字数が編集コントロールの幅を超える場合にも送信されます。 また、編集コントロールにES_AUTOVSCROLLスタイルが設定されておらず、テキストの挿入に起因する行の合計数が編集コントロールの高さを超える場合にも送信されます。

  • ON_EN_Standard Edition編集コントロールが入力フォーカスを受け取ったときに送信されるTFOCUS。

  • ON_EN_UPDATE 編集コントロールが変更されたテキストを表示しようとしている。 コントロールがテキストを書式設定した後、必要に応じてウィンドウ サイズを変更できるようにテキストをスクリーン表示する前に送信されます。

  • ON_EN_VSCROLL ユーザーが編集コントロールの垂直スクロール バーをクリックします。 画面が更新される前に、親ウィンドウに通知されます。

ダイアログ ボックス内にオブジェクトを CEdit 作成すると、ユーザーがダイアログ ボックスを CEdit 閉じると、オブジェクトは自動的に破棄されます。

ダイアログ エディターを CEdit 使用してダイアログ リソースからオブジェクトを作成すると、ユーザーがダイアログ ボックスを CEdit 閉じると、オブジェクトは自動的に破棄されます。

ウィンドウ内にオブジェクトを CEdit 作成する場合は、オブジェクトを破棄する必要がある場合もあります。 スタック上にオブジェクトを CEdit 作成すると、自動的に破棄されます。 関数を CEdit 使用 new してヒープ上にオブジェクトを作成する場合は、ユーザーが Windows 編集コントロールを終了したときにオブジェクトを破棄するオブジェクトを呼び出す delete 必要があります。 オブジェクトにメモリを割り当てる場合は、デストラクターをCEditCEditオーバーライドして割り当てを破棄します。

編集コントロールの特定のスタイル (ES_READONLY など) を変更するには、ModifyStyle を使用する代わりに、特定のメッセージをコントロールに送信する必要があります。 「Windows SDK でのコントロール スタイルの編集」を参照してください

詳細についてはCEdit、「コントロール」を参照してください

継承階層

CObject

CCmdTarget

CWnd

CEdit

必要条件

ヘッダー: afxwin.h

CEdit::CanUndo

この関数を呼び出して、最後の編集操作を元に戻すことができるかどうかを判断します。

BOOL CanUndo() const;

戻り値

メンバー関数の呼び出しによって最後の編集操作を元に戻すことができる場合は 0 以外。元に Undo 戻すことができない場合は 0。

解説

詳細については、Windows SDK のEM_CANUNDOを参照してください

CEdit::Undo の例を 参照してください

CEdit::CEdit

CEdit オブジェクトを構築します。

CEdit();

解説

[作成] を使用して、Windows 編集コントロールを作成します。

// Declare a local CEdit object.
CEdit myEdit;

// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;

CEdit::CharFromPos

このコントロール内の指定したポイントに最も近い文字の 0 から始まる行と文字インデックスを取得するには、この CEdit 関数を呼び出します。

int CharFromPos(CPoint pt) const;

パラメーター

pt
この CEdit オブジェクトのクライアント領域内のポイントの座標。

戻り値

下位の WORD の文字インデックスと、上位の WORD の行インデックス。

解説

Note

このメンバー関数は、Windows 95 および Windows NT 4.0 以降で使用できます。

詳細については、Windows SDK のEM_CHARFROMPOSを参照してください

// CMyEdit inherits from CEdit
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
   int n = CharFromPos(point);
   int nLineIndex = HIWORD(n);
   int nCharIndex = LOWORD(n);
   TRACE(_T("nLineIndex = %d, nCharIndex = %d\r\n"), nLineIndex, nCharIndex);

   CEdit::OnLButtonDown(nFlags, point);
}

CEdit::Clear

この関数を呼び出して、編集コントロールの現在の選択範囲 (存在する場合) を削除 (クリア) します。

void Clear();

解説

実行される Clear 削除は、元に戻すメンバー関数を呼び出すことによって元に すことができます。

現在の選択範囲を削除し、削除した内容をクリップボードに配置するには、Cut メンバー関数を呼び出します。

詳細については、Windows SDK のWM_CLEARを参照してください

// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();

CEdit::Copy

この関数を呼び出して、エディット コントロール内の現在の選択範囲 (ある場合) をクリップボードにCF_TEXT形式で変換します。

void Copy();

解説

詳細については、Windows SDK のWM_COPYを参照してください

// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();

CEdit::Create

Windows 編集コントロールを作成し、オブジェクトに CEdit アタッチします。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

パラメーター

dwStyle
編集コントロールのスタイルを指定します。 編集スタイルの任意の組み合わせをコントロールに適用します。

rect
編集コントロールのサイズと位置を指定します。 オブジェクトまたはRECT構造体をCRect指定できます。

pParentWnd
エディット コントロールの親ウィンドウ (通常は a CDialog) を指定します。 NULL は指定できません。

nID
編集コントロールの ID を指定します。

戻り値

初期化が成功した場合は 0 以外。それ以外の場合は 0。

解説

2 つの手順でオブジェクトを CEdit 構築します。 まず、コンストラクターを CEdit 呼び出してから呼び出 Createします。これにより、Windows 編集コントロールが作成され、オブジェクトに CEdit アタッチされます。

実行するとCreate、Windows はWM_NCCREATE、WM_NCCALCSIZEWM_CREATE、およびWM_GETMINMAXINFOメッセージを編集コントロールに送信します。

これらのメッセージは、基底クラスの OnNcCreate、OnNcCalcSizeOnCreate、OnGetMinMaxInfo メンバー関数によって既定でCWnd処理されます。 既定のメッセージ処理を拡張するには、クラスを CEdit派生させ、新しいクラスにメッセージ マップを追加し、上記のメッセージ ハンドラー メンバー関数をオーバーライドします。 OnCreateたとえば、新しいクラスに必要な初期化を実行するためにオーバーライドします。

のウィンドウ スタイル を編集コントロールに適用します。

  • WS_CHILD Always

  • 通常WS_VISIBLE

  • ほとんどWS_DISABLEDしない

  • WS_GROUP コントロールをグループ化するには

  • WS_TABSTOP タブの順序に編集コントロールを含めるには

// dynamically create an edit control
CEdit *pEdit = new CEdit;
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
              CRect(10, 10, 100, 100), this, 1);

CEdit::Cut

この関数を呼び出して、編集コントロールの現在の選択範囲 (ある場合) を削除 (切り取り) し、削除したテキストをCF_TEXT形式でクリップボードにコピーします。

void Cut();

解説

実行される Cut 削除は、元に戻すメンバー関数を呼び出すことによって元に すことができます。

削除したテキストをクリップボードに配置せずに現在の選択範囲を削除するには、Clear メンバー関数を呼び出します。

詳細については、Windows SDK のWM_CUTを参照してください

// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();

CEdit::EmptyUndoBuffer

編集コントロールの元に戻すフラグをリセット (クリア) するには、この関数を呼び出します。

void EmptyUndoBuffer();

解説

編集コントロールは、最後の操作を元に戻すことができなくなります。 元に戻すフラグは、編集コントロール内の操作を元に戻すことができるたびに設定されます。

元に戻すフラグは、SetWindowText または SetHandleCWnd メンバー関数が呼び出されるたびに自動的にクリアされます。

詳細については、Windows SDK のEM_EMPTYUNDOBUFFERを参照してください

// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
   m_myEdit.EmptyUndoBuffer();
   ASSERT(!m_myEdit.CanUndo());
}

CEdit::FmtLines

この関数を呼び出して、複数行編集コントロール内でソフト改行文字のオンとオフを設定します。

BOOL FmtLines(BOOL bAddEOL);

パラメーター

bAddEOL
ソフト改行文字を挿入するかどうかを指定します。 TRUE の値を指定すると、文字が挿入されます。値が FAL の場合Standard Edition削除されます。

戻り値

書式設定が行われる場合は 0 以外。それ以外の場合は 0。

解説

論理的な改行は、2 つの復帰と、折り返しのために改行された行の末尾に挿入される改行で構成されます。 改行は、1 つの復帰と改行で構成されます。 改行で終わる行は影響を受 FmtLinesけません。

Windows は、オブジェクトが複数行の CEdit 編集コントロールである場合にのみ応答します。

FmtLinesは、GetHandle によって返されるバッファーと、WM_GETTEXTによって返されるテキストにのみ影響します。 編集コントロール内のテキストの表示には影響しません。

詳細については、Windows SDK のEM_FMTLINESを参照してください

CString strText;

// Add soft line-break breaks.
m_myEdit.FmtLines(TRUE);

// Dump the text of the edit control.
m_myEdit.GetWindowText(strText);
AFXDUMP(strText);

// Remove soft line-break breaks.
m_myEdit.FmtLines(FALSE);

CEdit::GetCueBanner

コントロールが空のときに編集コントロールのテキスト キューまたはヒントとして表示されるテキストを取得します。

BOOL GetCueBanner(
    LPWSTR lpszText,
    int cchText) const;

CString GetCueBanner() const;

パラメーター

lpszText
[out]キュー テキストを含む文字列へのポインター。

cchText
[in]受信できる文字数。 この数値には、終端の NULL 文字が含まれます。

戻り値

最初のオーバーロードの場合、メソッドが成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

2 番目のオーバーロードの場合、 メソッドが成功した場合はキュー テキストを含む CString 。それ以外の場合は空の文字列 ("")。

解説

このメソッドは、 Windows SDK で説明されているEM_GETCUEBANNER メッセージを送信します。 詳細については、Edit_GetCueBannerText マクロを参照してください。

CEdit::GetFirstVisibleLine

この関数を呼び出して、編集コントロールの最上位に表示される行を決定します。

int GetFirstVisibleLine() const;

戻り値

一番上に表示される行の 0 から始まるインデックス。 1 行の編集コントロールの場合、戻り値は 0 です。

解説

詳細については、Windows SDK のEM_GETFIRSTVISIBLELINEを参照してください

int nFirstVisible = m_myEdit.GetFirstVisibleLine();

// Scroll the edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
   m_myEdit.LineScroll(-nFirstVisible, 0);
}

CEdit::GetHandle

この関数を呼び出して、現在複数行の編集コントロールに割り当てられているメモリへのハンドルを取得します。

HLOCAL GetHandle() const;

戻り値

編集コントロールの内容を保持するバッファーを識別するローカル メモリ ハンドル。 メッセージを 1 行の編集コントロールに送信するなど、エラーが発生した場合、戻り値は 0 になります。

解説

ハンドルはローカル メモリ ハンドルであり、ローカル メモリ ハンドルを パラメーターとして受け取るローカル Windows メモリ関数のいずれかで使用できます。

GetHandle は、複数行の編集コントロールによってのみ処理されます。

DS_LOCALEDIT スタイル フラグが設定されたダイアログ ボックスが作成された場合にのみ、ダイアログ ボックスで複数行の編集コントロールを呼び出 GetHandle します。 DS_LOCALEDIT スタイルが設定されていない場合でも、0 以外の戻り値が返されますが、戻り値を使用することはできません。

Note

GetHandle は Windows 95/98 では動作しません。 Windows 95/98 で呼び出 GetHandle すと、NULL が返されます。 GetHandle は、Windows NT バージョン 3.51 以降に記載されているとおりに機能します。

詳細については、Windows SDK のEM_GETHANDLEを参照してください

HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);

// Dump the text of the edit control.
AFXDUMP(lpszText);

::LocalUnlock(h);

CEdit::GetHighlight

現在の編集コントロールで強調表示されているテキストの範囲内の最初と最後の文字のインデックスを取得します。

BOOL GetHighlight(
    int* pichStart,
    int* pichEnd) const;

パラメーター

pichStart
[out]強調表示されているテキスト範囲内の最初の文字の 0 から始まるインデックス。

pichEnd
[out]強調表示されているテキスト範囲内の最後の文字の 0 から始まるインデックス。

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

このメソッドは、 Windows SDK で説明されているEM_GETHILITE メッセージを送信します。 両方 SetHighlight とも、 GetHighlight 現在 UNICODE ビルドでのみ有効です。

CEdit::GetLimitText

このメンバー関数を呼び出して、この CEdit オブジェクトのテキスト制限を取得します。

UINT GetLimitText() const;

戻り値

この CEdit オブジェクトの現在のテキスト制限 (TCHAR)。

解説

テキストの制限は、編集コントロールが受け入れることができる、TCHAR 内のテキストの最大量です。

Note

このメンバー関数は、Windows 95 および Windows NT 4.0 以降で使用できます。

詳細については、Windows SDK のEM_GETLIMITTEXTを参照してください

CString strText(_T("I'm an edit control!"));
UINT nLength = strText.GetLength() * sizeof(TCHAR);

// Want the text limit to be at least the size of the new string.
if (m_myEdit.GetLimitText() < nLength)
   m_myEdit.SetLimitText(nLength);

m_myEdit.SetWindowText(strText);

CEdit::GetLine

この関数を呼び出して、編集コントロールからテキスト行を取得し、lpszBuffer配置します。

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer,
    int nMaxLength) const;

パラメーター

Nindex
複数行の編集コントロールから取得する行番号を指定します。 行番号は 0 から始まります。値 0 は、最初の行を指定します。 このパラメーターは、1 行の編集コントロールでは無視されます。

lpszBuffer
行のコピーを受け取るバッファーを指します。 バッファーの最初の単語では、バッファーにコピーできる TCHAR の最大数を指定する必要があります。

nMaxLength
バッファーにコピーできる TCHAR 文字の最大数を指定します。 GetLineこの値は、Windows への呼び出しを行う前に lpszBuffer最初の単語に配置されます。

戻り値

実際にコピーされた文字数。 nIndex指定された行番号が編集コントロールの行数より大きい場合、戻り値は 0 です。

解説

コピーされた行に null 終端文字が含まれていません。

詳細については、Windows SDK のEM_GETLINEを参照してください

CEdit::GetLineCount例を参照してください。

CEdit::GetLineCount

この関数を呼び出して、複数行の編集コントロールの行数を取得します。

int GetLineCount() const;

戻り値

複数行編集コントロールの行数を含む整数。 編集コントロールにテキストが入力されていない場合、戻り値は 1 になります。

解説

GetLineCount は、複数行の編集コントロールによってのみ処理されます。

詳細については、Windows SDK のEM_GETLINECOUNTを参照してください

int i, nLineCount = m_myEdit.GetLineCount();
CString strText, strLine;
// Dump every line of text of the edit control.
for (i = 0; i < nLineCount; i++)
{
   // length of line i:
   int len = m_myEdit.LineLength(m_myEdit.LineIndex(i));
   m_myEdit.GetLine(i, strText.GetBuffer(len), len);
   strText.ReleaseBuffer(len);
   strLine.Format(_T("line %d: '%s'\n"), i, strText);
   AFXDUMP(strLine);
}

CEdit::GetMargins

このメンバー関数を呼び出して、この編集コントロールの左右の余白を取得します。

DWORD GetMargins() const;

戻り値

下位の WORD の左余白の幅と、高い順序の WORD の右余白の幅。

解説

余白はピクセル単位で測定されます。

Note

このメンバー関数は、Windows 95 および Windows NT 4.0 以降で使用できます。

詳細については、Windows SDK のEM_GETMARGINSを参照してください

CEditView::GetEditCtrl例を参照してください。

CEdit::GetModify

この関数を呼び出して、編集コントロールの内容が変更されたかどうかを確認します。

BOOL GetModify() const;

戻り値

エディット コントロールの内容が変更されている場合は 0 以外。変更されていない場合は 0 メイン。

解説

Windows メイン編集コントロールの内容が変更されたかどうかを示す内部フラグが含まれています。 このフラグは、編集コントロールが最初に作成されるときにクリアされ、SetModify メンバー関数を呼び出すことによってクリアすることもできます。

詳細については、Windows SDK のEM_GETMODIFYを参照してください

// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
   m_myEdit.SetModify(FALSE);

CEdit::GetPasswordChar

ユーザーがテキストを入力したときに編集コントロールに表示されるパスワード文字を取得するには、この関数を呼び出します。

TCHAR GetPasswordChar() const;

戻り値

ユーザーが入力した文字ではなく、表示する文字を指定します。 パスワード文字が存在しない場合、戻り値は NULL です。

解説

ES_PASSWORD スタイルで編集コントロールを作成すると、コントロールをサポートする DLL によって既定のパスワード文字が決まります。 マニフェストまたは InitCommonControlsEx メソッドによって、編集コントロールをサポートする DLL が決まります。 user32.dll が編集コントロールをサポートしている場合、既定のパスワード文字はアスタリスク ('*'、U+002A) です。 comctl32.dll バージョン 6 で編集コントロールがサポートされている場合、既定の文字は BLACK CIRCLE ('●'、U+25CF) です。 共通コントロールをサポートする DLL とバージョンの詳細については、「シェルおよび共通コントロールのバージョン」を参照してください

このメソッドは、 Windows SDK で説明されているEM_GETPASSWORDCHAR メッセージを送信します。

// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');

CEdit::GetRect

編集コントロールの書式設定の四角形を取得するには、この関数を呼び出します。

void GetRect(LPRECT lpRect) const;

パラメーター

lpRect
書式設定の四角形を RECT 受け取る構造体をポイントします。

解説

書式設定の四角形は、編集コントロール ウィンドウのサイズに依存しない、テキストの制限する四角形です。

複数行の編集コントロールの書式設定の四角形は、SetRect および SetRectNP メンバー関数によって変更できます。

詳細については、Windows SDK のEM_GETRECTを参照してください

CEdit::LimitText の例を参照してください。

CEdit::GetSel

この関数を呼び出して、戻り値またはパラメーターを使用して、エディット コントロール内の現在の選択範囲の開始位置と終了文字位置 (存在する場合) を取得します。

DWORD GetSel() const;

void GetSel(
    int& nStartChar,
    int& nEndChar) const;

パラメーター

nStartChar
現在の選択範囲の最初の文字の位置を受け取る整数への参照。

nEndChar
現在の選択範囲の末尾を超えて、選択されていない最初の文字の位置を受け取る整数への参照。

戻り値

DWORD を返すバージョンは、下位の単語の開始位置と、上位の単語の選択範囲の末尾の後の最初の非選択文字の位置を含む値を返します。

解説

詳細については、Windows SDK の「EM_GETStandard Edition L」を参照してください

// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);

CEdit::HideBalloonTip

現在の編集コントロールに関連付けられているバルーン ヒントを非表示にします。

BOOL HideBalloonTip();

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

この関数は、 Windows SDK で説明されているEM_HIDEBALLOONTIP メッセージを送信します。

CEdit::LimitText

ユーザーが編集コントロールに入力できるテキストの長さを制限するには、この関数を呼び出します。

void LimitText(int nChars = 0);

パラメーター

nChars
ユーザーが入力できるテキストの長さを (TCHAR 単位で) 指定します。 このパラメーターが 0 の場合、テキストの長さは UINT_MAX バイトに設定されます。 これが既定の動作です。

解説

テキスト制限を変更すると、ユーザーが入力できるテキストのみが制限されます。 編集コントロールに既に存在するテキストには影響しません。また、SetWindowText メンバー関数CWndによってエディット コントロールにコピーされたテキストの長さにも影響しません。 アプリケーションで関数を SetWindowText 使用して、呼び出しで指定されているよりも多くのテキストを編集コントロールに配置する LimitText場合、ユーザーは編集コントロール内の任意のテキストを削除できます。 ただし、テキストの制限により、現在の選択範囲を削除してもテキストがテキスト制限を下回る場合を除き、ユーザーは既存のテキストを新しいテキストに置き換えなくなります。

Note

Win32 (Windows NT および Windows 95/98) では、SetLimitText がこの関数を置き換えます。

詳細については、Windows SDK のEM_LIMITTEXTを参照してください

// Limit the number of characters to be the maximum number visible.

// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myEdit.GetDC();
pDC->GetTextMetrics(&tm);
m_myEdit.ReleaseDC(pDC);

CRect r;
m_myEdit.GetRect(&r);
m_myEdit.LimitText(r.Width() / tm.tmAveCharWidth);

CEdit::LineFromChar

指定した文字インデックスを含む行の行番号を取得するには、この関数を呼び出します。

int LineFromChar(int nIndex = -1) const;

パラメーター

Nindex
編集コントロールのテキスト内の目的の文字の 0 から始まるインデックス値を格納するか、-1 を含みます。 nIndex が -1 の場合、現在の行、つまりキャレットを含む行を指定します。

戻り値

nIndex指定された文字インデックスを含む行の 0 から始まる行番号。 nIndex が -1 の場合は、選択範囲の最初の文字を含む行の番号が返されます。 選択範囲がない場合は、現在の行番号が返されます。

解説

文字インデックスは、編集コントロールの先頭からの文字数です。

このメンバー関数は、複数行の編集コントロールでのみ使用されます。

詳細については、Windows SDK のEM_LINEFROMCHARを参照してください

// The index of the char to get information on.
int nIndex = 4;
CString strText;

m_myEdit.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);

// Get the text extent of the character.
CDC *pDC = m_myEdit.GetDC();
CSize sz = pDC->GetTextExtent(strText);
m_myEdit.ReleaseDC(pDC);

CPoint pt = m_myEdit.PosFromChar(nIndex);

// Dump the index, character, line number, and character bounds.
TRACE(_T("nIndex = %d, character = %c, line = %d, bounds = ")
      _T("{%d, %d, %d, %d}\r\n"),
      nIndex, strText[0], m_myEdit.LineFromChar(nIndex),
      pt.x /* left */, pt.y /* top */,
      pt.x + sz.cx /* right */, pt.y + sz.cy /* bottom */);

CEdit::LineIndex

この関数を呼び出して、複数行の編集コントロール内の行の文字インデックスを取得します。

int LineIndex(int nLine = -1) const;

パラメーター

nLine
編集コントロールのテキスト内の目的の行のインデックス値を格納するか、-1 を含みます。 nLine が -1 の場合、現在の行、つまりキャレットを含む行を指定します。

戻り値

nLine指定された行の文字インデックス。指定した行番号が編集コントロールの行数より大きい場合は -1 です。

解説

文字インデックスは、編集コントロールの先頭から指定した行までの文字数です。

このメンバー関数は、複数行の編集コントロールによってのみ処理されます。

詳細については、Windows SDK のEM_LINEINDEXを参照してください

// The string for replacing.
CString strString(_T("Hi, we're the replacements."));
int nBegin, nEnd;

// Replace the second line, if it exists, of the edit control
// with the text strString.
if ((nBegin = m_myEdit.LineIndex(1)) != -1)
{
   nEnd = nBegin + m_myEdit.LineLength(nBegin);
   m_myEdit.SetSel(nBegin, nEnd);
   m_myEdit.ReplaceSel(strString);
}

CEdit::LineLength

編集コントロール内の行の長さを取得します。

int LineLength(int nLine = -1) const;

パラメーター

nLine
長さを取得する行内の文字の 0 から始まるインデックス。 既定値は -1 です。

戻り値

1 行の編集コントロールの場合、戻り値は編集コントロール内のテキストの長さ (TCHAR) です。

複数行編集コントロールの場合、戻り値は nLine パラメーターで指定された行の長さ (TCHAR) です。 ANSI テキストの場合、長さは行内のバイト数です。Unicode テキストの場合、長さは行内の文字数です。 長さには、行の末尾にある復帰文字は含まれません。

nLine パラメーターがコントロール内の文字数を超える場合、戻り値は 0 になります。

nLine パラメーターが -1 の場合、戻り値は、選択した文字を含む行の選択されていない文字の数です。 たとえば、選択範囲が 1 行目の 4 番目の文字から次の行の末尾から 8 文字目までの範囲にある場合、戻り値は 10 になります。 つまり、最初の行は 3 文字、次の行には 7 文字です。

TCHAR 型の詳細については、Windows データ型の表 の TCHAR 行を参照してください

解説

このメソッドは、Windows SDK で 説明されているEM_LINELENGTH メッセージでサポートされています。

CEdit::LineIndex の例を参照してください。

CEdit::LineScroll

この関数を呼び出して、複数行の編集コントロールのテキストをスクロールします。

void LineScroll(
    int nLines,
    int nChars = 0);

パラメーター

nLines
垂直方向にスクロールする行数を指定します。

nChars
水平方向にスクロールする文字位置の数を指定します。 編集コントロールにES_RIGHTまたはES_CENTERスタイルがある場合、この値は無視されます。

解説

このメンバー関数は、複数行の編集コントロールによってのみ処理されます。

エディット コントロールは、エディット コントロール内のテキストの最後の行を垂直方向にスクロールしません。 現在の行と nLines指定された行数が編集コントロールの行の合計数を超える場合、編集コントロールの最後の行が編集コントロール ウィンドウの上部までスクロールされるように値が調整されます。

LineScroll は、任意の行の最後の文字を水平方向にスクロールするために使用できます。

詳細については、Windows SDK のEM_LINESCROLLを参照してください

CEdit::GetFirstVisibleLine の例を参照してください。

CEdit::P aste

クリップボードのデータをカーソル位置に挿入するには、 CEdit この関数を呼び出します。

void Paste();

解説

データは、クリップボードにCF_TEXT形式のデータが含まれている場合にのみ挿入されます。

詳細については、Windows SDK のWM_PASTEを参照してください

// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();

CEdit::P osFromChar

このオブジェクト内の特定の文字の位置 (左上隅) を取得するには、この CEdit 関数を呼び出します。

CPoint PosFromChar(UINT nChar) const;

パラメーター

nChar
指定した文字の 0 から始まるインデックス。

戻り値

nChar指定された文字の左上隅の座標。

解説

文字は、0 から始まるインデックス値を指定することによって指定されます。 nChar がこのオブジェクトの最後の文字のインデックスより大きい場合、戻り値は、このCEditCEditオブジェクトの最後の文字のすぐ後の文字位置の座標を指定します。

Note

このメンバー関数は、Windows 95 および Windows NT 4.0 以降で使用できます。

詳細については、Windows SDK のEM_POSFROMCHARを参照してください

CEdit::LineFromChar の例を参照してください。

CEdit::ReplaceSel

編集コントロールの現在の選択範囲を lpszNewText で 指定されたテキストに置き換えるには、この関数を呼び出します

void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);

パラメーター

lpszNewText
置換テキストを含む null で終わる文字列を指します。

bCanUndo
この関数を元に戻すことができることを指定するには、このパラメーターの値を TRUE に設定します。 既定値は FALSE です。

解説

編集コントロール内のテキストの一部のみを置換します。 すべてのテキストを置き換える場合は、CWnd::SetWindowText メンバー関数を使用します。

現在選択されていない場合、置換テキストは現在のカーソル位置に挿入されます。

詳細については、Windows SDK の「EM_REPLACEStandard Edition L」を参照してください

CEdit::LineIndex の例を参照してください。

CEdit::SetCueBanner

コントロールが空の場合に、編集コントロールのテキスト キューまたはヒントとして表示されるテキストを設定します。

BOOL SetCueBanner(LPCWSTR lpszText);

BOOL SetCueBanner(
    LPCWSTR lpszText,
    BOOL fDrawWhenFocused = FALSE);

パラメーター

lpszText
[in]編集コントロールに表示するキューを含む文字列へのポインター。

fDrawWhenFocused
[in]FAL Standard Edition の場合、ユーザーが編集コントロールをクリックしてコントロールにフォーカスを与えたときに、キュー バナーは描画されません。

TRUE の場合、コントロールにフォーカスがある場合でも、キュー バナーが描画されます。 ユーザーがコントロールの入力を開始すると、キュー バナーが消えます。

既定値は FALSE です。

戻り値

メソッドが成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

このメソッドは、Windows SDK で説明されている EM_Standard Edition TCUEBANNER メッセージを送信します。 詳細については、Edit_SetCueBannerTextFocused マクロを参照してください。

CEdit::SetCueBanner メソッドの例を次に示します。

m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);

CEdit::SetHandle

この関数を呼び出して、複数行の編集コントロールで使用されるローカル メモリにハンドルを設定します。

void SetHandle(HLOCAL hBuffer);

パラメーター

hBuffer
ローカル メモリへのハンドルを格納します。 このハンドルは、LMEM_MOVEABLE フラグを使用して、LocalAlloc Windows 関数の以前の呼び出しによって作成されている必要があります。 メモリには null で終わる文字列が含まれていると見なされます。 そうでない場合は、割り当てられたメモリの最初のバイトを 0 に設定する必要があります。

解説

その後、編集コントロールは、このバッファーを使用して、独自のバッファーを割り当てるのではなく、現在表示されているテキストを格納します。

このメンバー関数は、複数行の編集コントロールによってのみ処理されます。

アプリケーションが新しいメモリ ハンドルを設定する前に、GetHandle メンバー関数を使用して現在のメモリ バッファーへのハンドルを取得し、Windows 関数を使用してそのメモリを解放するLocalFree必要があります。

SetHandle は、元に 戻すバッファー (CanUndo メンバー関数は 0 を返します) と内部変更フラグ ( GetModify メンバー関数は 0 を返します) をクリアします。 エディット コントロール ウィンドウが再描画されます。

このメンバー関数は、DS_LOCALEDIT スタイル フラグが設定されたダイアログ ボックスを作成した場合にのみ、ダイアログ ボックスの複数行編集コントロールで使用できます。

Note

GetHandle は Windows 95/98 では動作しません。 Windows 95/98 で呼び出 GetHandle すと、NULL が返されます。 GetHandle は、Windows NT バージョン 3.51 以降に記載されているとおりに機能します。

詳細については、Windows SDK の「EM_Standard Edition THANDLELocalAlloc、LocalFree」を参照してください。

// The string to set in the edit control.
CString strString(_T("George Frideric"));

// Initialize the new local handle.
size_t cbSize = (strString.GetLength() + 1) * sizeof(TCHAR);
HLOCAL h = ::LocalAlloc(LHND, cbSize);
LPTSTR lpszText = (LPTSTR)::LocalLock(h);
_tcsncpy_s(lpszText, cbSize / sizeof(TCHAR), strString, _TRUNCATE);
::LocalUnlock(h);

// Free the current text handle of the edit control.
::LocalFree(m_myEdit.GetHandle());

// Set the new text handle.
m_myEdit.SetHandle(h);

CEdit::SetHighlight

現在の編集コントロールに表示されているテキストの範囲を強調表示します。

void SetHighlight(
    int ichStart,
    int ichEnd);

パラメーター

ichStart
[in]強調表示するテキスト範囲内の最初の文字の 0 から始まるインデックス。

ichEnd
[in]強調表示するテキスト範囲内の最後の文字の 0 から始まるインデックス。

解説

このメソッドは、Windows SDK で説明されている EM_Standard Edition THILITE メッセージを送信します。 このメソッドは、Windows SDK で説明されている EM_Standard Edition THILITE メッセージを送信します。 両方 SetHighlight とも、 GetHighlight UNICODE ビルドに対してのみ有効です。

CEdit::SetLimitText

このメンバー関数を呼び出して、この CEdit オブジェクトのテキスト制限を設定します。

void SetLimitText(UINT nMax);

パラメーター

nMax
新しいテキストの制限 (文字数)。

解説

テキストの制限は、編集コントロールが受け入れることができるテキストの最大文字数 (文字単位) です。

テキスト制限を変更すると、ユーザーが入力できるテキストのみが制限されます。 編集コントロールに既に存在するテキストには影響しません。また、SetWindowText メンバー関数CWndによってエディット コントロールにコピーされたテキストの長さにも影響しません。 アプリケーションで関数を SetWindowText 使用して、呼び出しで指定されているよりも多くのテキストを編集コントロールに配置する LimitText場合、ユーザーは編集コントロール内の任意のテキストを削除できます。 ただし、テキストの制限により、現在の選択範囲を削除してもテキストがテキスト制限を下回る場合を除き、ユーザーは既存のテキストを新しいテキストに置き換えなくなります。

この関数は、 Win32 の LimitText を置き換えます。

詳細については、Windows SDK の「EM_Standard Edition TLIMITTEXT」を参照してください

CEditView::GetEditCtrl例を参照してください。

CEdit::SetMargins

この編集コントロールの左右の余白を設定するには、このメソッドを呼び出します。

void SetMargins(
    UINT nLeft,
    UINT nRight);

パラメーター

nLeft
新しい左余白の幅 (ピクセル単位)。

nRight
新しい右余白の幅 (ピクセル単位)。

解説

Note

このメンバー関数は、Windows 95 および Windows NT 4.0 以降で使用できます。

詳細については、Windows SDK の「EM_Standard Edition TMARGINS」を参照してください

CEditView::GetEditCtrl例を参照してください。

CEdit::SetModify

編集コントロールの変更されたフラグを設定またはクリアするには、この関数を呼び出します。

void SetModify(BOOL bModified = TRUE);

パラメーター

bModified
TRUE の値は、テキストが変更されたことを示し、FAL の値Standard Editionは変更されていないことを示します。 既定では、変更されたフラグが設定されます。

解説

変更されたフラグは、編集コントロール内のテキストが変更されたかどうかを示します。 ユーザーがテキストを変更するたびに自動的に設定されます。 その値は、GetModify メンバー関数を使用して取得できます。

詳細については、Windows SDK の「EM_Standard Edition TMODIFY」を参照してください

CEdit::GetModify の例を参照してください。

CEdit::SetPasswordChar

ユーザーがテキストを入力したときに編集コントロールに表示されるパスワード文字を設定または削除するには、この関数を呼び出します。

void SetPasswordChar(TCHAR ch);

パラメーター

ch
ユーザーが入力した文字の代わりに表示する文字を指定します。 ch が 0 の場合、ユーザーが入力した実際の文字が表示されます。

解説

パスワード文字が設定されると、ユーザーが入力した文字ごとにその文字が表示されます。

このメンバー関数は、複数行の編集コントロールには影響しません。

メンバー関数がSetPasswordChar呼び出されると、 CEdit ch指定された文字を使用して、表示されているすべての文字が再描画されます。

編集コントロールがES_PASSWORD スタイルで作成された場合、既定のパスワード文字はアスタリスク (*) に設定されます。 ch が 0 に設定された状態SetPasswordChar呼び出されると、このスタイルは削除されます。

詳細については、Windows SDK の「EM_Standard Edition TPASSWORDCHAR」を参照してください

// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));

CEdit::SetReadOnly

この関数を呼び出して、編集コントロールの読み取り専用の状態を設定します。

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

パラメーター

bReadOnly
編集コントロールの読み取り専用状態を設定または削除するかどうかを指定します。 値 TRUE は、状態を読み取り専用に設定します。FAL の値Standard Edition読み取り/書き込みの状態を設定します。

戻り値

操作が成功した場合は 0 以外、エラーが発生した場合は 0。

解説

現在の設定は、CWnd::GetStyle の戻り値でES_READONLY フラグをテストすることで確認できます。

詳細については、Windows SDK の「EM_Standard Edition TREADONLY」を参照してください

// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);

CEdit::SetRect

指定した座標を使用して四角形の寸法を設定するには、この関数を呼び出します。

void SetRect(LPCRECT lpRect);

パラメーター

lpRect
書式設定する四角形の RECT 新しい寸法を指定する構造体または CRect オブジェクトをポイントします。

解説

このメンバーは、複数行の編集コントロールによってのみ処理されます。

複数行の編集コントロールの書式設定の四角形を設定するために使用 SetRect します。 書式設定の四角形は、編集コントロール ウィンドウのサイズに依存しない、テキストの制限する四角形です。 編集コントロールが最初に作成されるとき、書式設定の四角形は編集コントロール ウィンドウのクライアント領域と同じです。 メンバー関数を SetRect 使用すると、アプリケーションは、編集コントロール ウィンドウよりも書式設定の四角形を大きくまたは小さくできます。

編集コントロールにスクロール バーがない場合、書式設定の四角形がウィンドウより大きい場合、テキストはクリップされ、ラップされません。 編集コントロールに罫線が含まれている場合、書式設定の四角形は罫線のサイズによって縮小されます。 メンバー関数によって返される四角形を GetRect 調整する場合は、四角形を渡す前に境界線のサイズを削除する SetRect必要があります。

呼び出されると SetRect 、編集コントロールのテキストも再フォーマットされ、再表示されます。

詳細については、Windows SDK の「EM_Standard Edition TRECT」を参照してください

// Flag indicating whether to redraw the edit control.
bool fRedraw = TRUE;

CRect r;

m_myEdit.GetRect(&r);

// Reduce the formatting rect of the edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
   r.DeflateRect(10, 10);

   if (fRedraw)
      m_myEdit.SetRect(&r);
   else
      m_myEdit.SetRectNP(&r);
}

CEdit::SetRectNP

この関数を呼び出して、複数行の編集コントロールの書式設定の四角形を設定します。

void SetRectNP(LPCRECT lpRect);

パラメーター

lpRect
四角形の RECT 新しい寸法を指定する構造体または CRect オブジェクトを指します。

解説

書式設定の四角形は、編集コントロール ウィンドウのサイズに依存しない、テキストの制限する四角形です。

SetRectNP は、エディット コントロール ウィンドウが SetRect 再描画されないことを除き、メンバー関数と同じです。

編集コントロールが最初に作成されるとき、書式設定の四角形は編集コントロール ウィンドウのクライアント領域と同じです。 メンバー関数を SetRectNP 呼び出すことによって、アプリケーションは、編集コントロール ウィンドウよりも書式設定の四角形を大きくまたは小さくできます。

編集コントロールにスクロール バーがない場合、書式設定の四角形がウィンドウより大きい場合、テキストはクリップされ、ラップされません。

このメンバーは、複数行の編集コントロールによってのみ処理されます。

詳細については、Windows SDK の「EM_Standard Edition TRECTNP」を参照してください

CEdit::SetRect の例を参照してください。

CEdit::SetSel

この関数を呼び出して、編集コントロール内の文字範囲を選択します。

void SetSel(
    DWORD dwSelection,
    BOOL bNoScroll = FALSE);

void SetSel(
    int nStartChar,
    int nEndChar,
    BOOL bNoScroll = FALSE);

パラメーター

dwSelection
下位ワードの開始位置と、上位ワードの終了位置を指定します。 下位ワードが 0 で、上位ワードが -1 の場合、編集コントロール内のすべてのテキストが選択されます。 下位ワードが -1 の場合、現在の選択範囲はすべて削除されます。

bNoScroll
キャレットをスクロールして表示するかどうかを示します。 FAL Standard Editionの場合、キャレットはビューにスクロールされます。 TRUE の場合、キャレットはビューにスクロールされません。

nStartChar
開始位置を指定します。 nStartChar が 0 で nEndCharが -1 の場合、編集コントロール内のすべてのテキストが選択されます。 nStartChar が -1 の場合、現在の選択範囲はすべて削除されます。

nEndChar
終了位置を指定します。

解説

詳細については、Windows SDK の「EM_Standard Edition T Standard Edition L」を参照してください。

CEdit::GetSel の例を参照してください。

CEdit::SetTabStops

この関数を呼び出して、複数行の編集コントロールでタブ位置を設定します。

void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

パラメーター

cxEachStop
cxEachStop ダイアログ 単位ごとにタブ位置を設定することを指定します。

nTabStops
rgTabStops に 含まれるタブ位置の数を指定します。 この数値は 1 より大きくする必要があります。

rgTabStops
ダイアログ単位でタブ位置を指定する符号なし整数の配列を指します。 ダイアログ ユニットは、水平方向または垂直方向の距離です。 1 つの水平ダイアログユニットは現在のダイアログベースの幅単位の4分の1に等しく、1つの垂直ダイアログユニットは現在のダイアログベースの高さの単位の8分の1に等しくなります。 ダイアログの基本単位は、現在のシステム フォントの高さと幅に基づいて計算されます。 Windows 関数は GetDialogBaseUnits 、現在のダイアログの基本単位をピクセル単位で返します。

戻り値

タブが設定されている場合は 0 以外。それ以外の場合は 0。

解説

テキストを複数行の編集コントロールにコピーすると、テキスト内の任意のタブ文字によって、次のタブ位置までスペースが生成されます。

タブ位置を 32 ダイアログ 単位の既定のサイズに設定するには、このメンバー関数のパラメーターなしのバージョンを呼び出します。 タブ位置を 32 以外のサイズに設定するには、cxEachStop パラメーターを使用してバージョンを呼び出します。 タブ位置をサイズの配列に設定するには、バージョンと 2 つのパラメーターを使用します。

このメンバー関数は、複数行の編集コントロールによってのみ処理されます。

SetTabStops では、編集ウィンドウは自動的に再描画されません。 編集コントロールに既に含まれているテキストのタブ位置を変更する場合は、CWnd::InvalidateRect を呼び出して編集ウィンドウを再描画します。

詳細については、Windows SDK の「EM_Standard Edition TTABSTOPSGetDialogBaseUnits」を参照してください。

CEditView::SetTabStops の例を参照してください。

CEdit::ShowBalloonTip

現在の編集コントロールに関連付けられているバルーン ヒントを表示します。

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

BOOL ShowBalloonTip(
    LPCWSTR lpszTitle,
    LPCWSTR lpszText,
    INT ttiIcon = TTI_NONE);

パラメーター

pEditBalloonTip
[in]吹き出しの先端を記述する EDI TB (テラバイト)ALLOONTIP 構造体へのポインター。

lpszTitle
[in]バルーン ヒントのタイトルを含む Unicode 文字列へのポインター。

lpszText
[in]吹き出しのヒント テキストを含む Unicode 文字列へのポインター。

ttiIcon
[in] 吹き出しの先端に関連付けるアイコンの種類を指定する INT 。 既定値は TTI_NONE です。 詳細については、EDI TB (テラバイト)ALLOONTIP 構造体のメンバーを参照してくださいttiIcon

戻り値

このメソッドが成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

この関数は、 Windows SDK で説明されているEM_SHOWBALLOONTIP メッセージを送信します。 詳細については、Edit_ShowBalloonTip マクロを参照してください。

最初のコード例では、 m_cedit現在の編集コントロールにアクセスするために使用される変数を定義します。 この変数は次の例で使用されています。

public:
// Variable to access the edit control.
CEdit m_cedit;

次のコード例では、編集コントロールのバルーン ヒントを表示します。 CEdit::ShowBalloonTip メソッドは、タイトルと吹き出しのヒント テキストを指定します。

m_cedit.ShowBalloonTip(
    _T("CEdit Balloon Tip"), // title
    _T("Here's a tip!"),     // text
    TTI_INFO);

CEdit::Undo

この関数を呼び出して、最後の編集制御操作を元に戻します。

BOOL Undo();

戻り値

1 行の編集コントロールの場合、戻り値は常に 0 以外です。 複数行の編集コントロールの場合、元に戻す操作が成功した場合は戻り値は 0 以外、元に戻す操作が失敗した場合は 0 になります。

解説

元に戻す操作は元に戻すこともできます。 たとえば、最初の呼び出しで削除されたテキストを Undo復元できます。 中間編集操作がない限り、2 回目の呼び出し Undoでテキストを削除できます。

詳細については、Windows SDK のEM_UNDOを参照してください

// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
   m_myEdit.Undo();

関連項目

MFC サンプル CALCDRIV
MFC サンプル CMNCTRL2
CWnd クラス
階層図
CWnd クラス
CButton クラス
CComboBox クラス
CListBox クラス
CScrollBar クラス
CStatic クラス
CDialog クラス