CEdit クラス
Windows のエディット コントロールの機能が用意されています。
class CEdit : public CWnd
解説
エディット コントロールは、テキストを入力することのできる四角形の子ウィンドウです。
エディット コントロールは、ダイアログ テンプレートを利用するか、または直接コードに書き込むかのいずれかの方法で作成します。 どちらの場合でも、最初に CEdit コンストラクターで CEdit オブジェクトを構築します。その後、Create メンバー関数を呼び出して Windows のエディット コントロールを作り、CEdit オブジェクトを結び付けます。
CEdit クラスからの派生クラスでは、1 ステップで構築できます。 派生クラスのコンストラクターを記述し、その中で Create 関数を呼び出します。
CEdit は CWnd から有用な機能を継承しています。 CEdit オブジェクトからテキストを設定または取得するには、CWnd のメンバー関数である SetWindowText や GetWindowText を使います。これらの関数は、複数行のエディット コントロールに対しても、エディット コントロール全体の内容を設定したり、取得したりできます。 複数行のエディット コントロールのテキスト行は '\r\n' 文字シーケンスで区切られています。 また、複数行のエディット コントロールに対してそのテキストの一部分を設定または取得するには CEdit のメンバー関数である GetLine、SetSel、GetSel、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 の「Edit Control Styles」を参照してください。
CEdit の詳細については、以下のトピックを参照してください。
「サポート技術情報」(knowledge Base) の記事 Q259949:情報:SetCaretPos() は、CEdit または CRichEditCtrl コントロールで適切ではないです。
必要条件
**ヘッダー:**afxwin.h
参照
処理手順
CALCDRIV サンプル:オートメーション クライアント アプリケーションを示します
CMNCTRL2 サンプル:共通コントロール MFC クラス、第 2 部) を示します