CEdit Class
Windows のエディット コントロールの機能が用意されています。
構文
class CEdit : public CWnd
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CEdit:: CEdit | コントロールオブジェクトを CEdit 構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CEdit:: CanUndo | エディットコントロール操作を元に戻すことができるかどうかを判断します。 |
CEdit:: CharFromPos | 指定した位置に最も近い文字の行と文字のインデックスを取得します。 |
CEdit:: Clear | エディットコントロール内の現在の選択項目 (存在する場合) を削除 (クリア) します。 |
CEdit:: コピー | エディットコントロール内の現在の選択項目 (存在する場合) を 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:: 元に戻す | 最後の編集コントロール操作を反転します。 |
解説
編集コントロールは、ユーザーがテキストを入力できる四角形の子ウィンドウです。
編集コントロールは、ダイアログ テンプレートから作成するか、コード内で直接作成できます。 どちらの場合も、CEdit
CEdit
最初に コンストラクターを呼び出して オブジェクトを構築し、次に Create メンバー関数を呼び出して、Windows エディト コントロールを作成し、それを オブジェクトにアタッチCEdit
します。
構築は、 から派生したクラスの 1 段階のプロセスです CEdit
。 派生クラスのコンストラクターを記述し、コンストラクター内から Create
を呼び出します。
CEdit
は から重要な機能を継承します CWnd
。 オブジェクトのテキストCEdit
CWnd
を設定および取得するには、メンバー関数 SetWindowText と GetWindowText を使用します。この関数は、複数行コントロールの場合でも、編集コントロールの内容全体を設定または取得します。 複数行コントロールのテキスト行は、'\r\n' 文字シーケンスで区切っています。 また、編集コントロール CEdit
が複数行の場合は、メンバー関数 GetLine、 SetSel、 GetSel、 ReplaceSel を呼び出して、コントロールのテキストの一部を取得して設定します。
編集コントロールによって親 (CDialog
通常は から派生したクラス) に送信された Windows 通知メッセージを処理する場合は、メッセージマップ エントリとメッセージ ハンドラー メンバー関数を各メッセージの親クラスに追加します。
各 message-map エントリは、次の形式を取ります。
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
を作成すると、自動的に破棄されます。 関数を使用してCEdit
new
delete
ヒープ上に オブジェクトを作成する場合は、 オブジェクトを呼び出して、ユーザーが編集コントロールでオブジェクトを終了Windowsする必要があります。 オブジェクト内のメモリを割り当てる場合CEdit
CEdit
は、デストラクターをオーバーライドして割り当てを破棄します。
編集コントロール内の特定のスタイル (ES_READONLY など) を変更するには、ModifyStyle を使用する代わりに、コントロールに特定のメッセージを 送信する必要があります。 Windows SDK の「コントロール スタイルの編集」を参照してください。
の詳細については、「コントロール CEdit
」を 参照してください。
継承階層
CEdit
必要条件
ヘッダー: afxwin.h
CEdit::CanUndo
この関数を呼び出して、最後の編集操作を元に戻すかどうかを確認します。
BOOL CanUndo() const;
戻り値
メンバー関数の呼び出 Undo
しによって最後の編集操作を元に戻す場合は 0 以外。元に戻すことができない場合は 0。
解説
詳細については、sdk のEM_CANUNDOを参照Windowsしてください。
例
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
このメンバー関数は、95 および Windows 4.0 Windows NTから使用できます。
詳細については、EM_CHARFROMPOS SDK のWindows参照してください。
例
// 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 メンバー関数 を呼び 出します。
詳細については、WM_CLEAR SDK のWindowsしてください。
例
// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();
CEdit::Copy
この関数を呼び出して、編集コントロール内の現在の選択範囲 (指定されている場合) をクリップボードにコピー CF_TEXTします。
void Copy();
解説
詳細については、sdk のWM_COPYを参照Windowsしてください。
例
// 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。
解説
オブジェクトは 2 CEdit
つの手順で構築します。 まず、コンストラクターを呼CEdit
び出Create
してから を呼び出します。このメソッドは、編集コントロールWindowsを作成し、それを オブジェクトにアタッチCEdit
します。
をCreate
実行すると、Windows、WM_NCCREATE、WM_NCCALCSIZE、WM_CREATE、WM_GETMINMAXINFO メッセージが編集コントロールに送信されます。
これらのメッセージは、基本クラスの OnNcCreate、 OnNcCalcSize、 OnCreate、 および OnGetMinMaxInfoCWnd
メンバー関数によって既定で処理されます。 既定のメッセージ処理を拡張 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 メンバー 関数を呼び 出します。
詳細については、sdk のWM_CUTを参照Windowsしてください。
例
// 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 。それ以外の場合は、空の文字列 ("")。
解説
このメソッドは、EM_GETCUEBANNER SDK で説明されているメッセージをWindowsします。 詳細については、次のマクロを Edit_GetCueBannerText してください。
CEdit::GetFirstVisibleLine
この関数を呼び出して、編集コントロールの最上位に表示される行を特定します。
int GetFirstVisibleLine() const;
戻り値
最上位の表示行の 0 から始るインデックス。 単一行エディト コントロールの場合、戻り値は 0 です。
解説
詳細については、sdk のEM_GETFIRSTVISIBLELINEを参照Windowsしてください。
例
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
は、複数行の編集コントロールによってのみ処理されます。
ダイアログ GetHandle
ボックスがスタイル フラグを設定して作成された場合にのみ、ダイアログ ボックスで複数行の編集コントロールDS_LOCALEDIT呼び出します。 新しいDS_LOCALEDIT設定されていない場合でも、0 以外の戻り値が返されますが、返された値を使用することはできません。
Note
GetHandle
は 95/98 Windowsでは機能しません。 95/GetHandle
98 Windowsを呼び出した場合、NULL が返されます。 GetHandle
は、バージョン 3.51 Windows NTのドキュメントに記載されている通り動作します。
詳細については、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。
解説
このメソッドは、EM_GETHILITE SDK で説明されているメッセージをWindowsします。 と SetHighlight
の両方 GetHighlight
が現在、UNICODE ビルドでのみ有効になっています。
CEdit::GetLimitText
このメンバー関数を呼び出して、このオブジェクトのテキスト制限を取得 CEdit
します。
UINT GetLimitText() const;
戻り値
このオブジェクトの現在のテキスト制限 (TCHARs CEdit
)。
解説
テキストの上限は、エディットコントロールが受け入れることができるテキストの最大サイズ (TCHARs 単位) です。
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は最初の行を指定します。 このパラメーターは、単一行のエディットコントロールでは無視されます。
lpszBuffer
行のコピーを受け取るバッファーを指します。 バッファーの最初の単語では、バッファーにコピーできる TCHARs の最大数を指定する必要があります。
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;
戻り値
下位ワードの左余白の幅、および上位の単語の右余白の幅です ()。
解説
余白はピクセル単位で計測されます。
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 がエディットコントロールをサポートしている場合、既定の文字は黒の円 (' ● ', U + 25CF) です。 共通コントロールをサポートしている DLL とバージョンの詳細については、「 Shell および Common Controls Versions」を参照してください。
このメソッドは、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
ユーザーが入力できるテキストの長さ (TCHARs) を指定します。 このパラメーターが 0 の場合、テキストの長さは 1 バイトUINT_MAXされます。 これは既定の動作です。
解説
テキスト制限を変更すると、ユーザーが入力できるテキストだけが制限されます。 編集コントロールに既に存在するテキストには影響しません。また、 の SetWindowText メンバー関数によって編集コントロールにコピーされるテキストの長さにも影響しません CWnd
。 アプリケーションが 関数を使用SetWindowText
LimitText
して、 の呼び出しで指定されているよりも多くのテキストを編集コントロールに配置する場合、ユーザーは編集コントロール内の任意のテキストを削除できます。 ただし、現在の選択内容を削除するとテキストがテキストの制限を下回る場合を超える場合を超える限り、テキストの制限により、ユーザーは既存のテキストを新しいテキストに置き換えるのを防ぐ必要があります。
Note
Win32 (Windows NT 95/98 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。
解説
文字インデックスは、編集コントロールの先頭から指定した行への文字数です。
このメンバー関数は、複数行の編集コントロールによってのみ処理されます。
詳細については、sdk のEM_LINEINDEXを参照Windowsしてください。
例
// 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 です。
戻り値
単一行エディト コントロールの場合、戻り値は編集コントロール内のテキストの長さ (TCHARs) です。
複数行編集コントロールの場合、戻り値は nLine パラメーターで指定された行の長さ (TCHARs) です。 ANSI テキストの場合、長さは行のバイト数です。Unicode テキストの場合、長さは行の文字数です。 長さには、行の末尾のキャリッジリターン文字は含まれます。
nLine パラメーターがコントロール内の文字数を超える場合、戻り値は 0 です。
nLine パラメーターが -1 の場合、戻り値は、選択した文字を含む行内の選択されていない文字の数です。 たとえば、選択範囲が 1 行目の 4 文字目から次の行の末尾の 8 番目の文字まで続く場合、戻り値は 10 になります。 つまり、最初の行には 3 文字、次の行には 7 文字です。
TCHAR 型の詳細については、「データ型の変更」の表の TCHAR Windows参照してください。
解説
このメソッドは、EM_LINELENGTH SDK で説明されているメッセージでWindowsされます。
例
CEdit::LineScroll
この関数を呼び出して、複数行の編集コントロールのテキストをスクロールします。
void LineScroll(
int nLines,
int nChars = 0);
パラメーター
nLines
垂直方向にスクロールする行数を指定します。
nChars
水平方向にスクロールする文字位置の数を指定します。 この値は、編集コントロールに新しいスタイルまたはES_RIGHT場合ES_CENTERされません。
解説
このメンバー関数は、複数行の編集コントロールによってのみ処理されます。
編集コントロールは、編集コントロールのテキストの最後の行を垂直方向にスクロールしない。 現在の行に nLines で指定された行数を加えた値が編集コントロールの行の総数を超えた場合、編集コントロールの最後の行がエディトコントロール ウィンドウの上部までスクロールされます。
LineScroll
を使用すると、任意の行の最後の文字を水平方向にスクロールできます。
詳細については、EM_LINESCROLL SDK のWindowsしてください。
例
CEdit::GetFirstVisibleLine の例を参照してください。
CEdit::P aste
クリップボードから挿入ポイントの にデータを挿入するには、この CEdit
関数を呼び出します。
void Paste();
解説
データが挿入されるのは、クリップボードにデータが含まれている場合にのみ、CF_TEXTされます。
詳細については、WM_PASTE SDK のWindowsしてください。
例
// 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
このメンバー関数は、95 および Windows 4.0 Windows NTから使用できます。
詳細については、EM_POSFROMCHAR SDK のWindowsしてください。
例
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
からエディットコントロールに表示するキューを含む文字列へのポインター。
fDrawWhenFocused
から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
ローカルメモリへのハンドルを格納します。 このハンドルは、前のLocalAlloc Windows 関数の呼び出しによって、LMEM_MOVEABLE フラグを使用して作成されている必要があります。 メモリには、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_SETHANDLE」、「 LocalAlloc」、および「 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
から強調表示するテキスト範囲内の最初の文字の0から始まるインデックス番号。
ichEnd
から強調表示するテキスト範囲内の最後の文字の0から始まるインデックス番号。
解説
このメソッドは、Windows SDK で説明されているEM_SETHILITEメッセージを送信します。 このメソッドは、Windows SDK で説明されているEM_SETHILITEメッセージを送信します。 とはどちらも SetHighlight
、 GetHighlight
UNICODE ビルドに対してのみ有効です。
CEdit:: SetLimitText
このオブジェクトの CEdit
テキスト制限を設定するには、このメンバー関数を呼び出します。
void SetLimitText(UINT nMax);
パラメーター
nMax
新しいテキストの制限値 (文字数)。
解説
Text 制限は、エディットコントロールが受け入れることができるテキストの最大量 (文字数) です。
テキストの制限を変更すると、ユーザーが入力できるテキストのみが制限されます。 エディットコントロールに既に存在するテキストには影響しません。また、の CWnd
SetWindowTextメンバー関数によってエディットコントロールにコピーされるテキストの長さにも影響しません。 アプリケーションで関数を使用 SetWindowText
して、の呼び出し LimitText
で指定されたよりも多くのテキストを編集コントロールに配置する場合、ユーザーは編集コントロール内の任意のテキストを削除できます。 ただし、テキストの制限により、現在の選択範囲を削除してもテキストがテキストの上限を超えない限り、ユーザーは既存のテキストを新しいテキストに置き換えることができなくなります。
この関数は、Win32 の Limittext を置き換えます。
詳細については、Windows SDK の「 EM_SETLIMITTEXT 」を参照してください。
例
CEditView:: GetEditCtrlの例を参照してください。
CEdit:: SetMargins
このエディットコントロールの左右の余白を設定するには、このメソッドを呼び出します。
void SetMargins(
UINT nLeft,
UINT nRight);
パラメーター
n 左
新しい左余白の幅 (ピクセル単位)。
nRight
新しい右余白の幅 (ピクセル単位)。
解説
Note
このメンバー関数は、Windows 95 および Windows NT 4.0 から使用できます。
詳細については、Windows SDK の「 EM_SETMARGINS 」を参照してください。
例
CEditView:: GetEditCtrlの例を参照してください。
CEdit:: SetModify
編集コントロールの変更されたフラグを設定またはクリアするには、この関数を呼び出します。
void SetModify(BOOL bModified = TRUE);
パラメーター
bModified
値が TRUE の場合は、テキストが変更されたことを示します。値が FALSE の場合は、変更されていないことを示します。 既定では、modified フラグが設定されています。
解説
Modified フラグは、エディットコントロール内のテキストが変更されたかどうかを示します。 ユーザーがテキストを変更するたびに自動的に設定されます。 その値は、 GetModify メンバー関数を使用して 取得できます。
詳細については、sdk のEM_SETMODIFYをWindowsしてください。
例
CEdit::SetPasswordChar
ユーザーがテキストを入力するときに編集コントロールに表示されるパスワード文字を設定または削除するには、この関数を呼び出します。
void SetPasswordChar(TCHAR ch);
パラメーター
ch
ユーザーが入力した文字の代用に表示する文字を指定します。 ch が 0 の場合、ユーザーが入力した実際の文字が表示されます。
解説
パスワード文字を設定すると、ユーザーが入力した各文字に対してその文字が表示されます。
このメンバー関数は、複数行の編集コントロールには影響しません。
メンバー関数が SetPasswordChar
呼び出された場合、 CEdit
は ch で指定された文字を使用して、表示可能なすべての文字を再描画 します。
編集コントロールが既定のスタイルでES_PASSWORD場合 、 既定のパスワード文字はアスタリスク ( ) に設定されます *。 ch を 0 に設定して SetPasswordChar
が呼び出 された 場合、このスタイルは削除されます。
詳細については、EM_SETPASSWORDCHAR SDK のWindowsしてください。
例
// 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フラグをテストすることで確認できます。
詳細については、EM_SETREADONLY SDK のWindowsしてください。
例
// 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
呼び出された場合、編集コントロールのテキストも再フォーマットされ、再表示されます。
詳細については、EM_SETRECT SDK のWindows参照してください。
例
// 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
関数を呼び出すことによって、編集コントロール ウィンドウよりも書式設定の四角形を大きくしたり小さくしたりできます。
編集コントロールにスクロール バーがない場合、書式設定の四角形がウィンドウよりも大きい場合、テキストは折り返されません。
このメンバーは、複数行の編集コントロールによってのみ処理されます。
詳細については、EM_SETRECTNP SDK のWindows参照してください。
例
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
終了位置を指定します。
解説
詳細については、EM_SETSEL SDK のWindowsしてください。
例
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 の「EM_SETTABSTOPS と GetDialogBaseUnits」を参照してください。
例
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。 詳細については、ttiIcon
EDITBALLOONTIP 構造体のメンバーに関するページを参照してください。
戻り値
このメソッドが成功した場合は TRUE。それ以外の場合は FALSE。
解説
この関数は、EM_SHOWBALLOONTIP SDK で説明されているメッセージをWindowsします。 詳細については、次のマクロを 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();
戻り値
単一行エディト コントロールの場合、戻り値は常に 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 クラス