次の方法で共有


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 オブジェクトからテキストを設定および取得するには、CWnd メンバー関数 SetWindowText および GetWindowText を使用します。これは、複数行コントロールであっても、編集コントロールの内容全体を設定または取得します。 複数行コントロールのテキスト行は、'\r\n' 文字シーケンスで区切られます。 また、編集コントロールが複数行の場合は、 CEdit メンバー関数 GetLineSetSelGetSel、および ReplaceSel を呼び出して、コントロールのテキストの一部を取得および設定します。

編集コントロールによって親 (通常は 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_SETFOCUS編集コントロールが入力フォーカスを受け取ったときに送信されます。

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

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

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

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

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

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

CEditの詳細については、「Controls」を参照してください。

継承階層

CObject

CCmdTarget

CWnd

CEdit

要件

ヘッダー: afxwin.h

CEdit::CanUndo

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

BOOL CanUndo() const;

戻り値

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

解説

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

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

CEdit::CEdit

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

CEdit();

解説

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

// Declare a local CEdit object.
CEdit myEdit;

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

CEdit::CharFromPos

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

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によって実行される削除は、Undo メンバー関数を呼び出すことによって元に戻すことができます。

現在の選択範囲を削除し、削除した内容をクリップボードに配置するには、 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
編集コントロールのサイズと位置を指定します。 CRect オブジェクトまたはRECT構造体を指定できます。

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

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

戻り値

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

解説

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

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

これらのメッセージは、CWnd 基底クラスの OnNcCreateOnNcCalcSizeOnCreate、および OnGetMinMaxInfo メンバー関数によって既定で処理されます。 既定のメッセージ処理を拡張するには、 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によって実行される削除は、Undo メンバー関数を呼び出すことによって元に戻すことができます。

削除されたテキストをクリップボードに配置せずに現在の選択範囲を削除するには、 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 の値を指定すると、文字が挿入されます。FALSE の値を指定すると、これらの値が削除されます。

戻り値

書式設定が行われる場合は 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。それ以外の場合は FALSE。

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 になります。

解説

ハンドルはローカル メモリ ハンドルであり、ローカル メモリ ハンドルをパラメーターとして受け取る Local 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。それ以外の場合は FALSE。

解説

このメソッドは、Windows SDK で説明されている EM_GETHILITE メッセージを送信します。 現在、 SetHighlightGetHighlight の両方が 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) です。 バージョン 6 comctl32.dllエディット コントロールがサポートされている場合、既定の文字は BLACK CIRCLE ('●'、U+25CF) です。 共通コントロールをサポートする DLL とバージョンの詳細については、「 Shell と共通コントロールのバージョンを参照してください。

このメソッドは、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_GETSEL を参照してください。

// 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。それ以外の場合は FALSE。

解説

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

CEdit::LimitText

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

void LimitText(int nChars = 0);

パラメーター

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

解説

テキスト制限を変更すると、ユーザーが入力できるテキストのみが制限されます。 編集コントロールに既に存在するテキストには影響しません。また、CWndSetWindowText メンバー関数によって編集コントロールにコピーされたテキストの長さにも影響しません。 アプリケーションで 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がこのCEdit オブジェクトの最後の文字のインデックスより大きい場合、戻り値は、このCEdit オブジェクトの最後の文字の直前の文字位置の座標を指定します。

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_REPLACESEL を参照してください。

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

CEdit::SetCueBanner

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

BOOL SetCueBanner(LPCWSTR lpszText);

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

パラメーター

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

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

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

既定値は FALSE です。

戻り値

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

解説

このメソッドは、Windows SDK で説明されている EM_SETCUEBANNER メッセージを送信します。 詳細については、 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 メンバー関数を使用して現在のメモリ バッファーへのハンドルを取得し、 LocalFree Windows 関数を使用してそのメモリを解放する必要があります。

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_SETHANDLELocalAlloc、および 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_SETHILITE メッセージを送信します。 このメソッドは、Windows SDK で説明されている EM_SETHILITE メッセージを送信します。 SetHighlightGetHighlightの両方が UNICODE ビルドでのみ有効になります。

CEdit::SetLimitText

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

void SetLimitText(UINT nMax);

パラメーター

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

解説

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

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

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

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

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

CEdit::SetMargins

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

void SetMargins(
    UINT nLeft,
    UINT nRight);

パラメーター

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

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

解説

Note

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

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

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

CEdit::SetModify

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

void SetModify(BOOL bModified = TRUE);

パラメーター

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

解説

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

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

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

CEdit::SetPasswordChar

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

void SetPasswordChar(TCHAR ch);

パラメーター

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

解説

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

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

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

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

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

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

CEdit::SetReadOnly

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

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

パラメーター

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

戻り値

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

解説

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

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

// 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_SETRECT を参照してください。

// 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_SETRECTNP を参照してください。

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
キャレットをスクロールして表示するかどうかを示します。 FALSE の場合、キャレットはビューにスクロールされます。 TRUE の場合、キャレットはビューにスクロールされません。

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

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

解説

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

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に等しくなります。 ダイアログの基本単位は、現在のシステム フォントの高さと幅に基づいて計算されます。 GetDialogBaseUnits Windows 関数は、現在のダイアログの基本単位をピクセル単位で返します。

戻り値

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

解説

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

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

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

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

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

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

CEdit::ShowBalloonTip

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

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

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

パラメーター

pEditBalloonTip
[in]吹き出しの先端を記述する EDITBALLOONTIP 構造体へのポインター。

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

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

ttiIcon
[in]バルーン ヒントに関連付けるアイコンの種類を指定する INT 。 既定値は TTI_NONE です。 詳細については、EDITBALLOONTIP 構造体のttiIconメンバーを参照してください。

戻り値

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

解説

この関数は、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の最初の呼び出しで削除されたテキストを復元できます。 介入する編集操作がない限り、 Undoの 2 回目の呼び出しでテキストをもう一度削除できます。

詳細については、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 クラス