CRichEditCtrl クラス

リッチ エディット コントロールの機能を提供します。

構文

class CRichEditCtrl : public CWnd

メンバー

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

名前 説明
CRichEditCtrl::CRichEditCtrl CRichEditCtrl オブジェクトを構築します。

パブリック メソッド

名前 説明
CRichEditCtrl::CanPaste クリップボードの内容をこのリッチ エディット コントロールに貼り付けることができるかどうかを判断します。
CRichEditCtrl::CanRedo コントロールの再実行キューにアクションがあるかどうかを判断します。
CRichEditCtrl::CanUndo 編集操作を元に戻すことができるかどうかを決定します。
CRichEditCtrl::CharFromPos 編集コントロールのクライアント領域内の指定したポイントに最も近い文字に関する情報を取得します。
CRichEditCtrl::Clear 現在の選択範囲をクリアします。
CRichEditCtrl::Copy 現在の選択範囲をクリップボードにコピーします。
CRichEditCtrl::Create Windows リッチ エディット コントロールを作成し、この CRichEditCtrl オブジェクトに関連付けます。
CRichEditCtrl::CreateEx 指定した拡張 Windows スタイルを使用して Windows リッチ エディット コントロールを作成し、この CRichEditCtrl オブジェクトに関連付けます。
CRichEditCtrl::Cut 現在の選択範囲をクリップボードに切り取ります。
CRichEditCtrl::DisplayBand この CRichEditCtrl オブジェクトの内容の一部を表示します。
CRichEditCtrl::EmptyUndoBuffer この CRichEditCtrl オブジェクトの元に戻すフラグをリセット (クリア) します。
CRichEditCtrl::FindText この CRichEditCtrl オブジェクト内のテキストを検索します。
CRichEditCtrl::FindWordBreak 指定した文字位置の前後の次の単語区切りを検索するか、その位置にある文字に関する情報を取得します。
CRichEditCtrl::FormatRange ターゲット出力デバイスのテキスト範囲を書式設定します。
CRichEditCtrl::GetCharPos この CRichEditCtrl オブジェクト内の特定の文字の位置を決定します。
CRichEditCtrl::GetDefaultCharFormat この CRichEditCtrl オブジェクトの現在の既定の文字書式属性を取得します。
CRichEditCtrl::GetEventMask この CRichEditCtrl オブジェクトのイベント マスクを取得します。
CRichEditCtrl::GetFirstVisibleLine この CRichEditCtrl オブジェクトの一番上に表示される線を指定します。
CRichEditCtrl::GetIRichEditOle このリッチ エディット コントロールの IRichEditOle インターフェイスへのポインターを取得します。
CRichEditCtrl::GetLimitText ユーザーがこの CRichEditCtrl オブジェクトに入力できるテキストの量の制限を取得します。
CRichEditCtrl::GetLine この CRichEditCtrl オブジェクトからテキスト行を取得します。
CRichEditCtrl::GetLineCount この CRichEditCtrl オブジェクト内の行数を取得します。
CRichEditCtrl::GetModify この CRichEditCtrl オブジェクトの内容が前回の保存以降に変更されたかどうかを判断します。
CRichEditCtrl::GetOptions 豊富な編集コントロール オプションを取得します。
CRichEditCtrl::GetParaFormat この CRichEditCtrl オブジェクトの現在の選択範囲の段落書式属性を取得します。
CRichEditCtrl::GetPunctuation リッチ エディット コントロールの現在の句読点文字を取得します。 このメッセージは、オペレーティング システムのアジア言語バージョンでのみ使用できます。
CRichEditCtrl::GetRect この CRichEditCtrl オブジェクトの書式設定四角形を取得します。
CRichEditCtrl::GetRedoName コントロールの再実行キュー内の次のアクションの種類 (存在する場合) を取得します。
CRichEditCtrl::GetSel この CRichEditCtrl オブジェクト内の現在の選択範囲の開始位置と終了位置を取得します。
CRichEditCtrl::GetSelectionCharFormat この CRichEditCtrl オブジェクトの現在の選択範囲の文字書式属性を取得します。
CRichEditCtrl::GetSelectionType この CRichEditCtrl オブジェクトの現在の選択範囲の内容の種類を取得します。
CRichEditCtrl::GetSelText この CRichEditCtrl オブジェクトの現在の選択範囲のテキストを取得します。
CRichEditCtrl::GetTextLength この CRichEditCtrl オブジェクト内のテキストの長さを文字で取得します。 終端の null 文字は含まれません。
CRichEditCtrl::GetTextLengthEx リッチエディット ビューの文字数またはバイト数を取得します。 リッチ エディット コントロール内のテキストの長さを決定する方法を示すフラグの一覧を受け入れます
CRichEditCtrl::GetTextMode リッチ エディット コントロールの現在のテキスト モードと元に戻すレベルを取得します。
CRichEditCtrl::GetTextRange 指定したテキスト範囲を取得します。
CRichEditCtrl::GetUndoName 次の元に戻す操作の種類 (ある場合) を取得します。
CRichEditCtrl::GetWordWrapMode リッチ エディット コントロールの現在の単語折り返しオプションと単語区切りオプションを取得します。 このメッセージは、オペレーティング システムのアジア言語バージョンでのみ使用できます。
CRichEditCtrl::HideSelection 現在の選択範囲を表示または非表示にします。
CRichEditCtrl::LimitText ユーザーが CRichEditCtrl オブジェクトに入力できるテキストの量を制限します。
CRichEditCtrl::LineFromChar 指定された文字を含む行を決定します。
CRichEditCtrl::LineIndex この CRichEditCtrl オブジェクト内の特定の行の文字インデックスを取得します。
CRichEditCtrl::LineLength この CRichEditCtrl オブジェクト内の特定の行の長さを取得します。
CRichEditCtrl::LineScroll この CRichEditCtrl オブジェクト内のテキストをスクロールします。
CRichEditCtrl::Paste クリップボードの内容をこのリッチ エディット コントロールに挿入します。
CRichEditCtrl::PasteSpecial クリップボードの内容を、指定されたデータ形式でこのリッチ エディット コントロールに挿入します。
CRichEditCtrl::PosFromChar 編集コントロール内の、指定された文字のクライアント領域座標を取得します。
CRichEditCtrl::Redo コントロールの再実行キューの次のアクションをやり直します。
CRichEditCtrl::ReplaceSel この CRichEditCtrl オブジェクトの現在の選択範囲を、指定したテキストに置き換えます。
CRichEditCtrl::RequestResize この CRichEditCtrl オブジェクトに要求サイズ変更通知を強制的に送信します。
CRichEditCtrl::SetAutoURLDetect リッチ エディット コントロールで自動 URL 検出がアクティブかどうかを示します。
CRichEditCtrl::SetBackgroundColor この CRichEditCtrl オブジェクトの背景色を設定します。
CRichEditCtrl::SetDefaultCharFormat この CRichEditCtrl オブジェクトの現在の既定の文字書式属性を設定します。
CRichEditCtrl::SetEventMask この CRichEditCtrl オブジェクトのイベント マスクを設定します。
CRichEditCtrl::SetModify この CRichEditCtrl オブジェクトの変更フラグを設定またはクリアします。
CRichEditCtrl::SetOLECallback このリッチ エディット コントロールの IRichEditOleCallback COM オブジェクトを設定します。
CRichEditCtrl::SetOptions この CRichEditCtrl オブジェクトのオプションを設定します。
CRichEditCtrl::SetParaFormat この CRichEditCtrl オブジェクトの現在の選択範囲の段落書式属性を設定します。
CRichEditCtrl::SetPunctuation リッチ エディット コントロールの句読点文字を設定します。 このメッセージは、オペレーティング システムのアジア言語バージョンでのみ使用できます。
CRichEditCtrl::SetReadOnly この CRichEditCtrl オブジェクトの読み取り専用オプションを設定します。
CRichEditCtrl::SetRect この CRichEditCtrl オブジェクトの書式設定四角形を設定します。
CRichEditCtrl::SetSel この CRichEditCtrl オブジェクトの選択を設定します。
CRichEditCtrl::SetSelectionCharFormat この CRichEditCtrl オブジェクトの現在の選択範囲の文字書式属性を設定します。
CRichEditCtrl::SetTargetDevice この CRichEditCtrl オブジェクトのターゲット出力デバイスを設定します。
CRichEditCtrl::SetTextMode リッチ エディット コントロールのテキスト モードまたは元に戻すレベルを設定します。 コントロールにテキストが含まれている場合、メッセージは失敗します。
CRichEditCtrl::SetUndoLimit 元に戻すキューに格納できるアクションの最大数を設定します。
CRichEditCtrl::SetWordCharFormat この CRichEditCtrl オブジェクトの現在の単語の文字書式属性を設定します。
CRichEditCtrl::SetWordWrapMode リッチ エディット コントロールの word-wrapping と word-breaking オプションを設定します。 このメッセージは、オペレーティング システムのアジア言語バージョンでのみ使用できます。
CRichEditCtrl::StopGroupTyping コントロールが現在の元に戻す操作に追加の入力操作を収集しないようにします。 コントロールは、次の入力操作 (ある場合) を元に戻すキューの新しいアクションに格納します。
CRichEditCtrl::StreamIn 入力ストリームからこの CRichEditCtrl オブジェクトにテキストを挿入します。
CRichEditCtrl::StreamOut この CRichEditCtrl オブジェクトのテキストを出力ストリームに格納します。
CRichEditCtrl::Undo 最後の編集操作を元に戻します。

解説

"リッチ エディット コントロール" は、ユーザーがテキストを入力および編集できるウィンドウです。 テキストには、文字や段落の書式を割り当てることができ、埋め込み OLE オブジェクトを含めることができます。 リッチ エディット コントロールは、テキストを書式設定するためのプログラミング インターフェイスを提供します。 ただし、アプリケーションは、ユーザーが書式設定操作を使用できるようにするために必要なユーザー インターフェイス コンポーネントを実装する必要があります。

この Windows 共通コントロール (したがって、 CRichEditCtrl クラス) は、Windows 95/98 および Windows NT バージョン 3.51 以降で実行されているプログラムでのみ使用できます。 CRichEditCtrl クラスは、Windows SDK のリッチ エディット コントロールのバージョン 2.0 と 3.0 をサポートしています。

注意事項

ダイアログ ボックスでリッチエディット コントロールを使用している場合 (アプリケーションが SDI、MDI、またはダイアログ ベースのいずれであるかに関係なく)、ダイアログ ボックスを表示する前に、 AfxInitRichEdit を 1 回呼び出す必要があります。 この関数を呼び出す一般的な場所は、プログラムの InitInstance メンバー関数です。 ダイアログ ボックスを表示するたびに、このメソッドを呼び出す必要はなく、最初のみ呼び出す必要があります。 CRichEditView を使用する場合は、AfxInitRichEditKを呼び出す必要はありません。

CRichEditCtrlの使用方法の詳細については、以下を参照してください。

MFC アプリケーションでリッチ エディット コントロールを使用する例については、 WORDPAD サンプル アプリケーションを参照してください。

継承階層

CObject

CCmdTarget

CWnd

CRichEditCtrl

要件

ヘッダー: afxcmn.h

CRichEditCtrl::CanPaste

リッチ エディット コントロールで、指定したクリップボード形式を貼り付けることができるかどうかを判断します。

BOOL CanPaste(UINT nFormat = 0) const;

パラメーター

nFormat
クエリを実行するクリップボード のデータ形式。 このパラメーターには、定義済みのクリップボード形式のいずれか、または RegisterClipboardFormatによって返される値を指定できます。

戻り値

クリップボード形式を貼り付けることができる場合は 0 以外。それ以外の場合は 0。

解説

nFormatが 0 の場合、CanPasteは現在クリップボードにある任意の形式を試します。

詳細については、Windows SDK EM_CANPASTE メッセージと RegisterClipboardFormat 関数に関する説明を参照してください。

// Paste the clipboard data if possible.
if (m_myRichEditCtrl.CanPaste())
{
   m_myRichEditCtrl.Paste();
}

CRichEditCtrl::CanRedo

再実行キューにアクションが含まれているかどうかを判断します。

BOOL CanRedo() const;

戻り値

再実行キューにアクションが含まれている場合は 0 以外、それ以外の場合は 0。

解説

再実行キュー内の操作の名前を検出するには、 CRichEditCtrl::GetRedoNameを呼び出します。 最新の元に戻す操作をやり直すには、 Redoを呼び出します。

詳細については、Windows SDK の EM_CANREDO に関する記事を参照してください。

CRichEditCtrl::CanUndo

最後の編集操作を元に戻すことができるかどうかを判断します。

BOOL CanUndo() const;

戻り値

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

解説

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

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

CRichEditCtrl::CharFromPos

パラメーター ptで指定された位置にある文字に関する情報を取得します。

int CharFromPos(CPoint pt) const;

パラメーター

pt
指定した点の座標を含む CPoint オブジェクト。

戻り値

指定したポイントに最も近い文字の 0 から始まる文字インデックス。 指定したポイントがコントロールの最後の文字を超えている場合、戻り値はコントロールの最後の文字を示します。

解説

このメンバー関数は、リッチ エディット コントロールで動作します。 編集コントロールの情報を取得するには、 CEdit::CharFromPosを呼び出します。

詳細については、Windows SDK の EM_CHARFROMPOS に関する記事を参照してください。

CRichEditCtrl::Clear

リッチ エディット コントロールの現在の選択範囲 (存在する場合) を削除 (クリア) します。

void Clear();

解説

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

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

詳細については、Windows SDK の WM_CLEAR に関する記事を参照してください。

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

CRichEditCtrl::Copy

リッチ エディット コントロールの現在の選択範囲 (ある場合) をクリップボードにコピーします。

void Copy();

解説

詳細については、Windows SDK の WM_COPY に関する記事を参照してください。

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

CRichEditCtrl::Create

Windows リッチ エディット コントロールを作成し、この CRichEditCtrl オブジェクトに関連付けます。

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

パラメーター

dwStyle
編集コントロールのスタイルを指定します。 以下の「Remarks」セクションに記載されているウィンドウ スタイルの組み合わせを適用し、Windows SDK で説明するコントロール スタイル編集します。

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

pParentWnd
エディット コントロールの親ウィンドウ (多くの場合、 CDialog) を指定します。 NULLすることはできません。

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

戻り値

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

解説

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

この関数を使用してリッチ エディット コントロールを作成する場合は、まず、必要な共通コントロール ライブラリを読み込む必要があります。 ライブラリを読み込むには、グローバル関数 AfxInitRichEditを呼び出し、次に共通コントロール ライブラリを初期化します。 プロセスで 1 回だけ AfxInitRichEdit を呼び出す必要があります。

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

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

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

  • WS_CHILD いつも。

  • WS_VISIBLE 通常は。

  • WS_DISABLED 稀に。

  • WS_GROUP コントロールをグループ化します。

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

ウィンドウ スタイルの詳細については、「Windows SDK の CreateWindow 」を参照してください。

m_myRichEditCtrl.Create(
    WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE,
    CRect(10, 10, 100, 200), pParentWnd, IDD_RICHEDITCTRL);

CRichEditCtrl::CreateEx

コントロール (子ウィンドウ) を作成し、 CRichEditCtrl オブジェクトに関連付けます。

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

パラメーター

dwExStyle
作成するコントロールの拡張スタイルを指定します。 拡張 Windows スタイルの一覧については、Windows SDK のCreateWindowExdwExStyle パラメーターを参照してください。

dwStyle
編集コントロールのスタイルを指定します。 Windows SDK で説明されている、Create コントロール スタイルと編集コントロール スタイルのRemarks セクションに記載されているウィンドウ スタイルの組み合わせを適用します。

rect
pParentWndのクライアント座標で、作成するウィンドウのサイズと位置を記述するRECT構造体への参照。

pParentWnd
コントロールの親であるウィンドウへのポインター。

nID
コントロールの子ウィンドウ ID。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

CreateではなくCreateExを使用して、Windows 拡張スタイルの前置WS_EX_で指定された拡張 Windows スタイルを適用します。

CRichEditCtrl::CRichEditCtrl

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

CRichEditCtrl();

解説

Createを使用して、Windows リッチ エディット コントロールを構築します。

// Declare a local CRichEditCtrl object.
CRichEditCtrl myRichEditCtrl;

// Declare a dynamic CRichEditCtrl object.
CRichEditCtrl* pRichEditCtrl = new CRichEditCtrl;

CRichEditCtrl::Cut

リッチ エディット コントロール内の現在の選択範囲を削除 (切り取り) し、削除したテキストをクリップボードにコピーします (存在する場合)。

void Cut();

解説

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

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

詳細については、Windows SDK の WM_CUT に関する記事を参照してください。

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

CRichEditCtrl::DisplayBand

以前に FormatRangeで書式設定されたリッチ エディット コントロール (テキストおよび OLE アイテム) の内容の一部を表示します。

BOOL DisplayBand(LPRECT pDisplayRect);

パラメーター

pDisplayRect
テキストを表示するデバイスの領域を指定する RECT または CRect オブジェクトへのポインター。

戻り値

書式設定されたテキストの表示が成功した場合は 0 以外、それ以外の場合は 0。

解説

テキストと OLE 項目は、ポインター pDisplayRectで指定された領域にクリップされます。

詳細については、Windows SDK の EM_DISPLAYBAND に関する記事を参照してください。

CRichEditCtrl::FormatRange の例を参照してください。

CRichEditCtrl::EmptyUndoBuffer

このリッチ エディット コントロールの元に戻すフラグをリセット (クリア) します。

void EmptyUndoBuffer();

解説

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

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

詳細については、Windows SDK の EM_EMPTYUNDOBUFFER に関する記事を参照してください。

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

CRichEditCtrl::FindText

リッチ エディット コントロール内のテキストを検索します。

long FindText(
    DWORD dwFlags,
    FINDTEXTEX* pFindText) const;

パラメーター

dwFlags
使用可能な値の一覧については、Windows SDK のEM_FINDTEXTEXTwParamを参照してください。

pFindText
検索のパラメーターを指定し、一致が見つかった範囲を返す FINDTEXTEX 構造体へのポインター。

戻り値

次の一致の 0 から始まる文字位置。- これ以上一致がない場合は 1。

解説

FINDTEXTEX構造内のCHARRANGE構造で適切な範囲パラメーターを設定することで、上下を検索できます。

詳細については、Windows SDK のメッセージとFINDTEXTEX構造EM_FINDTEXTEX参照してください。

// Set the selection to be the first occurrence of the
// string lpszmyString, if it is found.
FINDTEXTEX ft;
ft.chrg.cpMin = 0;
ft.chrg.cpMax = 50;
ft.lpstrText = _T("wallaby");
long n = m_myRichEditCtrl.FindText(FR_MATCHCASE | FR_WHOLEWORD, &ft);
if (n != -1)
   m_myRichEditCtrl.SetSel(ft.chrgText);

CRichEditCtrl::FindWordBreak

nStartで指定した位置の前または後の次の単語区切りを検索します。

DWORD FindWordBreak(
    UINT nCode,
    DWORD nStart) const;

パラメーター

nCode
実行するアクションを示します。 使用可能な値の一覧については、Windows SDK のEM_FINDWORDBREAKのパラメーター codeの説明を参照してください。

nStart
開始位置の 0 から始まる文字位置。

戻り値

パラメーター nCodeに基づく。 詳細については、Windows SDK の EM_FINDWORDBREAK に関する記事を参照してください。

解説

このメンバー関数を使用すると、特定の位置にある文字に関する情報を取得できます。

CRichEditCtrl::FormatRange

特定のデバイスのリッチ エディット コントロール内のテキストの範囲を書式設定します。

long FormatRange(
    FORMATRANGE* pfr,
    BOOL bDisplay = TRUE);

パラメーター

pfr
出力デバイスに関する情報を含む FORMATRANGE 構造体へのポインター。 NULL は、リッチ エディット コントロール内のキャッシュされた情報を解放できることを示します。

bDisplay
テキストをレンダリングするかどうかを示します。 FALSE場合、テキストは測定されます。

戻り値

領域に収まる最後の文字のインデックスに 1 を加えたもの。

解説

通常、この呼び出しの後に DisplayBandの呼び出しが続きます。

詳細については、Windows SDK のメッセージとFORMATRANGE構造EM_FORMATRANGE参照してください。

// First obtain a pointer to a printer DC.
CPageSetupDialog psDlg;
if (IDOK == psDlg.DoModal())
{
   CDC *pMyPrinterDC = CDC::FromHandle(psDlg.CreatePrinterDC());

   FORMATRANGE fr;

   // Get the page width and height from the printer.
   long lPageWidth = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALWIDTH),
                              1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSX));
   long lPageHeight = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALHEIGHT),
                               1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSY));
   CRect rcPage(0, 0, lPageWidth, lPageHeight);

   // Format the text and render it to the printer.
   fr.hdc = pMyPrinterDC->m_hDC;
   fr.hdcTarget = pMyPrinterDC->m_hDC;
   fr.rc = rcPage;
   fr.rcPage = rcPage;
   fr.chrg.cpMin = 0;
   fr.chrg.cpMax = -1;
   m_myRichEditCtrl.FormatRange(&fr, TRUE);

   // Update the display with the new formatting.
   RECT rcClient;
   m_myRichEditCtrl.GetClientRect(&rcClient);
   m_myRichEditCtrl.DisplayBand(&rcClient);

   pMyPrinterDC->DeleteDC();
}

CRichEditCtrl::GetCharPos

この CRichEditCtrl オブジェクト内の特定の文字の位置 (左上隅) を取得します。

CPoint GetCharPos(long lChar) const;

パラメーター

lChar
文字の 0 から始まるインデックス。

戻り値

lCharで指定された文字の左上隅の位置。

解説

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

詳細については、Windows SDK の EM_POSFROMCHAR に関する記事を参照してください。

CRichEditCtrl::GetDefaultCharFormat

この CRichEditCtrl オブジェクトの既定の文字書式属性を取得します。

DWORD GetDefaultCharFormat(CHARFORMAT& cf) const;  DWORD GetDefaultCharFormat(CHARFORMAT2& cf) const;

パラメーター

cf
最初のバージョンでは、既定の文字書式属性を保持する CHARFORMAT 構造体へのポインター。

2 番目のバージョンでは、 CHARFORMAT2 構造体へのポインター。これは、既定の文字書式属性を保持する、 CHARFORMAT 構造体に対する Rich Edit 2.0 拡張機能です。

戻り値

cfdwMask データ メンバー。 既定の文字書式属性を指定しました。

解説

詳細については、Windows SDK の EM_GETCHARFORMAT メッセージと CHARFORMAT および CHARFORMAT2 の構造を参照してください。

SetDefaultCharFormat の例を参照してください。

CRichEditCtrl::GetEventMask

この CRichEditCtrl オブジェクトのイベント マスクを取得します。

long GetEventMask() const;

戻り値

この CRichEditCtrl オブジェクトのイベント マスク。

解説

イベント マスクは、 CRichEditCtrl オブジェクトが親ウィンドウに送信する通知メッセージを指定します。

詳細については、Windows SDK の EM_GETEVENTMASK に関する記事を参照してください。

CRichEditCtrl::SetEventMask の例を参照してください。

CRichEditCtrl::GetFirstVisibleLine

この CRichEditCtrl オブジェクトの一番上に表示される線を指定します。

int GetFirstVisibleLine() const;

戻り値

この CRichEditCtrl オブジェクト内の最も上から目に見える行の 0 から始まるインデックス。

解説

詳細については、Windows SDK の EM_GETFIRSTVISIBLELINE に関する記事を参照してください。

int nFirstVisible = m_myRichEditCtrl.GetFirstVisibleLine();

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

CRichEditCtrl::GetIRichEditOle

このCRichEditCtrl オブジェクトのIRichEditOle インターフェイスにアクセスします。

IRichEditOle* GetIRichEditOle() const;

戻り値

このCRichEditCtrl オブジェクトの OLE 機能にアクセスするために使用できるIRichEditOle インターフェイスへのポインター。インターフェイスにアクセスできない場合にNULLします。

解説

このインターフェイスを使用して、この CRichEditCtrl オブジェクトの OLE 機能にアクセスします。

詳細については、Windows SDK のメッセージとIRichEditOleインターフェイスEM_GETOLEINTERFACE参照してください。

CRichEditCtrl::GetLimitText

この CRichEditCtrl オブジェクトのテキスト制限を取得します。

long GetLimitText() const;

戻り値

この CRichEditCtrl オブジェクトの現在のテキスト制限 (バイト単位)。

解説

テキストの制限は、リッチ エディット コントロールで許容できるテキストの最大量 (バイト単位) です。

詳細については、Windows SDK の EM_GETLIMITTEXT に関する記事を参照してください。

// The new text of the rich edit control.
LPCTSTR lpszmyString = _T("Here's some text in our rich edit control!");
long nLength = (long)_tcslen(lpszmyString);

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

m_myRichEditCtrl.SetWindowText(lpszmyString);

CRichEditCtrl::GetLine

この CRichEditCtrl オブジェクトからテキスト行を取得します。

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

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

パラメーター

nIndex
取得する行の 0 から始まるインデックス。

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

nMaxLength
lpszBufferにコピーできる最大文字数。 2 番目の形式の GetLine は、この値を、 lpszBufferで指定されたバッファーの最初の単語に配置します。

戻り値

lpszBufferにコピーされた文字数。

解説

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

Note

バッファーの最初の単語にはコピーする文字数が格納されるため、バッファーの長さが 4 バイト以上であることを確認します。

詳細については、Windows SDK の EM_GETLINE に関する記事を参照してください。

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

CRichEditCtrl::GetLineCount

CRichEditCtrl オブジェクト内の行数を取得します。

int GetLineCount() const;

戻り値

この CRichEditCtrl オブジェクト内の行数。

解説

詳細については、Windows SDK の EM_GETLINECOUNT に関する記事を参照してください。

int nLineLength, nLineIndex, nLineCount = m_myRichEditCtrl.GetLineCount();
CString strText, strLine;

// Dump every line of text of the rich edit control.
for (int i = 0; i < nLineCount; i++)
{
   nLineIndex = m_myRichEditCtrl.LineIndex(i);
   nLineLength = m_myRichEditCtrl.LineLength(nLineIndex);
   m_myRichEditCtrl.GetLine(i, strText.GetBufferSetLength(nLineLength + 1),
                            nLineLength);
   strText.SetAt(nLineLength, _T('\0')); // null terminate
   strText.ReleaseBuffer(nLineLength + 1);

   TRACE(_T("line %d: '%s'\r\n"), i, strText);
}

CRichEditCtrl::GetModify

この CRichEditCtrl オブジェクトの内容が変更されているかどうかを判断します。

BOOL GetModify() const;

戻り値

この CRichEditCtrl オブジェクト内のテキストが変更された場合は 0 以外、それ以外の場合は 0。

解説

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

詳細については、Windows SDK の EM_GETMODIFY に関する記事を参照してください。

// Reset the modified state only if the text has been modified.
if (m_myRichEditCtrl.GetModify())
   m_myRichEditCtrl.SetModify(FALSE);

CRichEditCtrl::GetOptions

リッチ エディット コントロールに現在設定されているオプションを取得します。

UINT GetOptions() const;

戻り値

現在のオプション フラグ値の組み合わせ。 これらの値の一覧については、Windows SDK の説明に従って、EM_SETOPTIONS メッセージの fOptions パラメーターを参照してください。

CRichEditCtrl::GetParaFormat

現在の選択範囲の段落書式属性を取得します。

DWORD GetParaFormat(PARAFORMAT& pf) const;  DWORD GetParaFormat(PARAFORMAT2& pf) const;

パラメーター

pf
最初のバージョンでは、現在の選択範囲の段落書式属性を保持する PARAFORMAT 構造体へのポインター。

2 番目のバージョンでは、 PARAFORMAT2 構造体へのポインター。これは、既定の文字書式属性を保持する、 PARAFORMAT 構造体に対する Rich Edit 2.0 拡張機能です。

戻り値

pfdwMask データ メンバー。 現在の選択範囲全体で一貫した段落書式属性を指定します。

解説

複数の段落が選択されている場合、 pf は最初に選択した段落の属性を受け取ります。 戻り値は、選択全体で一貫性のある属性を指定します。

詳細については、Windows SDK の EM_GETPARAFORMAT メッセージと PARAFORMAT および PARAFORMAT2 の構造を参照してください。

CRichEditCtrl::SetParaFormat の例を参照してください。

CRichEditCtrl::GetPunctuation

リッチ エディット コントロールの現在の句読点文字を取得します。

BOOL GetPunctuation(
    UINT fType,
    PUNCTUATION* lpPunc) const;

パラメーター

fType
Windows SDK のEM_GETPUNCTUATIONfType パラメーターで説明されているように、句読点の種類フラグ。

lpPunc
Windows SDK で説明されているように、 PUNCTUATION 構造体へのポインター。

戻り値

操作が成功した場合は 0 以外、それ以外の場合は 0。

解説

このメンバー関数は、オペレーティング システムのアジア言語バージョンでのみ使用できます。

CRichEditCtrl::GetRect

この CRichEditCtrl オブジェクトの書式設定四角形を取得します。

void GetRect(LPRECT lpRect) const;

パラメーター

lpRect
CRectまたは、このCRichEditCtrl オブジェクトの書式設定の四角形を受け取るRECTへのポインター。

解説

書式設定の四角形は、テキストの外接する四角形です。 この値は、 CRichEditCtrl オブジェクトのサイズに依存しません。

詳細については、Windows SDK の EM_GETRECT に関する記事を参照してください。

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

CRichEditCtrl::GetRedoName

再実行キュー内の次に使用可能なアクションの種類を取得します (存在する場合)。

UNDONAMEID GetRedoName() const;

戻り値

成功した場合、 GetRedoName はコントロールの再実行キュー内の次のアクションの種類を示す UNDONAMEID 列挙型を返します。 再実行キューが空の場合、またはキュー内の再実行アクションが不明な種類の場合、 GetRedoName は 0 を返します。

解説

元に戻すかやり直すことができるアクションの種類には、入力、削除、ドラッグ ドロップ、切り取り、貼り付けの操作が含まれます。 この情報は、やり直し可能な操作のドロップダウン リスト ボックスなど、元に戻す操作とやり直し操作用の拡張ユーザー インターフェイスを提供するアプリケーションに役立ちます。

CRichEditCtrl::GetSel

この CRichEditCtrl オブジェクト内の現在の選択範囲の境界を取得します。

void GetSel(CHARRANGE& cr) const;

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

パラメーター

cr
現在の選択範囲の境界を受け取る CHARRANGE 構造体への参照。

nStartChar
現在の選択範囲の最初の文字の 0 から始まるインデックス。

nEndChar
現在の選択範囲の最後の文字の 0 から始まるインデックス。

解説

この関数の 2 つの形式では、選択範囲の境界を取得する別の方法が提供されます。 これらのフォームの簡単な説明は次のとおりです。

  • GetSel( cr ) このフォームでは、cpMinおよびcpMaxメンバーを持つCHARRANGE構造体を使用して境界を返します。

  • GetSel( nStartChar , nEndChar ) このフォームは、パラメーターの nStartCharnEndCharの境界を返します。

選択範囲には、先頭 (cpMin または nStartChar) が 0 で、終了 (cpMax または nEndChar) が - 1 の場合、すべてが含まれます。

詳細については、Windows SDK のメッセージとCHARRANGE構造EM_EXGETSEL参照してください。

// Set the selection to be all characters after the current selection.
long nStartChar, nEndChar;

m_myRichEditCtrl.GetSel(nStartChar, nEndChar);
m_myRichEditCtrl.SetSel(nEndChar, -1);

CRichEditCtrl::GetSelectionCharFormat

現在の選択範囲の文字書式属性を取得します。

DWORD GetSelectionCharFormat(CHARFORMAT& cf) const;  DWORD GetSelectionCharFormat(CHARFORMAT2& cf) const;

パラメーター

cf
最初のバージョンでは、現在の選択範囲の文字書式属性を受け取る CHARFORMAT 構造体へのポインター。

2 番目のバージョンでは、 CHARFORMAT2 構造体へのポインター。これは、現在の選択範囲の文字書式属性を受け取る CHARFORMAT 構造体の Rich Edit 2.0 拡張機能です。

戻り値

cfdwMask データ メンバー。 現在の選択範囲全体で一貫性のある文字書式属性を指定します。

解説

cf パラメーターは、現在の選択範囲の最初の文字の属性を受け取ります。 戻り値は、選択全体で一貫性のある属性を指定します。

詳細については、Windows SDK の EM_GETCHARFORMAT メッセージと CHARFORMAT および CHARFORMAT2 の構造を参照してください。

SetSelectionCharFormat の例を参照してください。

CRichEditCtrl::GetSelectionType

この CRichEditCtrl オブジェクトの選択の種類を決定します。

WORD GetSelectionType() const;

戻り値

現在の選択範囲の内容を示すフラグ。 次のフラグの組み合わせ:

  • SEL_EMPTY 現在選択されていないことを示します。

  • SEL_TEXT 現在の選択範囲にテキストが含まれていることを示します。

  • SEL_OBJECT 現在の選択範囲に少なくとも 1 つの OLE 項目が含まれていることを示します。

  • SEL_MULTICHAR 現在の選択範囲に複数のテキスト文字が含まれていることを示します。

  • SEL_MULTIOBJECT 現在の選択範囲に複数の OLE オブジェクトが含まれていることを示します。

解説

詳細については、Windows SDK の EM_SELECTIONTYPE に関する記事を参照してください。

// Dump the selection text only if it contains at least one text character.
if (m_myRichEditCtrl.GetSelectionType() & (SEL_TEXT | SEL_MULTICHAR))
{
   CString strText = m_myRichEditCtrl.GetSelText();

   TRACE(_T("selection text is '%s'.\r\n"), strText);
}

CRichEditCtrl::GetSelText

この CRichEditCtrl オブジェクトの現在の選択範囲からテキストを取得します。

long GetSelText(LPSTR lpBuf) const;  CString GetSelText() const;

パラメーター

lpBuf
現在の選択範囲のテキストを受け取るバッファーへのポインター。

戻り値

フォームによって異なります。

  • GetSelText(lpBuf) null 終端を含まない、 lpBufにコピーされた文字数。

  • GetSelText( ) 現在の選択範囲を含む文字列。

解説

最初の形式 ( GetSelText(lpBuf)) を使用する場合は、バッファーが受信するテキストに十分な大きさであることを確認する必要があります。 GetSelを呼び出して、現在の選択範囲の文字数を決定します。

詳細については、Windows SDK の EM_GETSELTEXT に関する記事を参照してください。

CRichEditCtrl::GetSelectionType の例を参照してください。

CRichEditCtrl::GetTextLength

この CRichEditCtrl オブジェクト内のテキストの長さを、終端の null 文字を含まない文字で取得します。

long GetTextLength() const;

戻り値

この CRichEditCtrl オブジェクト内のテキストの長さ。

解説

詳細については、Windows SDK の WM_GETTEXTLENGTH に関する記事を参照してください。

// Limit the rich edit controls text to the number of
// characters currently in it.
m_myRichEditCtrl.LimitText(m_myRichEditCtrl.GetTextLength());

CRichEditCtrl::GetTextLengthEx

リッチ エディット コントロールのテキストの長さを計算します。

long GetTextLengthEx(
    DWORD dwFlags,
    UINT uCodePage = -1) const;

パラメーター

dwFlags
テキストの長さを決定するために使用するメソッドを指定する値。 このメンバーには、Windows SDK で説明されている GETTEXTLENGTHEX の flags メンバーに記載されている 1 つ以上の値を指定できます。

uCodePage
翻訳用のコード ページ (ANSI コード ページのCP_ACP 、Unicode の場合は 1200)。

戻り値

編集コントロールの文字数またはバイト数。 dwFlagsで互換性のないフラグが設定されている場合、このメンバー関数はE_INVALIDARGを返します。

解説

GetTextLengthEx は、テキストの長さを決定する追加の方法を提供します。 リッチ エディット 2.0 機能をサポートしています。 詳細については、「 Windows SDK のリッチエディット コントロール について」を参照してください。

CRichEditCtrl::GetTextMode

リッチ エディット コントロールの現在のテキスト モードと元に戻すレベルを取得します。

UINT GetTextMode() const;

戻り値

Windows SDK で説明されているように、 TEXTMODE 列挙型のビット フラグのセット。 このフラグは、コントロールの現在のテキスト モードと元に戻すレベルを示します。

CRichEditCtrl::GetTextRange

指定した文字範囲を取得します。

int GetTextRange(
    int nFirst,
    int nLast,
    CString& refString) const;

パラメーター

nFirst
範囲内の最初の文字の直前の文字位置インデックス。

nLast
範囲内の最後の文字の直後の文字位置。

refString
テキストを受け取る CString オブジェクトへの参照。

戻り値

コピーされた文字数 。終端の null 文字は含まれません。

解説

詳細については、Windows SDK の EM_GETTEXTRANGE に関する記事を参照してください。

GetTextRange では、リッチ エディット 2.0 機能がサポートされています。 詳細については、「 Windows SDK のリッチエディット コントロール について」を参照してください。

CRichEditCtrl::GetUndoName

元に戻すキューで次に使用可能なアクションの種類を取得します (存在する場合)。

UNDONAMEID GetUndoName() const;

戻り値

元に戻す操作がコントロールの元に戻すキューにある場合、 GetUndoName はキュー内の次のアクションの種類を示す UNDONAMEID 列挙型を返します。 元に戻すキューが空の場合、またはキュー内の元に戻す操作が不明な種類の場合、 GetUndoName は 0 を返します。

解説

元に戻すかやり直すことができるアクションの種類には、入力、削除、ドラッグ ドロップ、切り取り、貼り付けの操作が含まれます。 この情報は、元に戻すことができる操作のドロップダウン リスト ボックスなど、元に戻す操作とやり直し操作の拡張ユーザー インターフェイスを提供するアプリケーションに役立ちます。

CRichEditCtrl::GetWordWrapMode

リッチ エディット コントロールの現在の単語折り返しオプションと単語区切りオプションを取得します。

UINT GetWordWrapMode() const;

戻り値

現在の単語の折り返しオプションと単語区切りオプション。 これらのオプションについては、Windows SDK の EM_SETWORDWRAPMODE で説明されています。

解説

このメンバー関数は、オペレーティング システムのアジア言語バージョンでのみ使用できます。

CRichEditCtrl::HideSelection

選択範囲の表示を変更します。

void HideSelection(
    BOOL bHide,
    BOOL bPerm);

パラメーター

bHide
選択範囲を表示するか非表示にするかを示 TRUE 、選択範囲を非表示にします。

bPerm
選択範囲の可視性のこの変更を永続的にする必要があるかどうかを示します。

解説

bPermTRUEされると、このCRichEditCtrl オブジェクトのECO_NOHIDESEL オプションが変更されます。 このオプションの簡単な説明については、 SetOptionsを参照してください。 この関数を使用して、この CRichEditCtrl オブジェクトのすべてのオプションを設定できます。

詳細については、Windows SDK の EM_HIDESELECTION に関する記事を参照してください。

// Show the selection and make it permanent.
m_myRichEditCtrl.HideSelection(FALSE, TRUE);

CRichEditCtrl::LimitText

ユーザーが編集コントロールに入力できるテキストの長さを制限します。

void LimitText(long nChars = 0);

パラメーター

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

解説

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

Note

テキスト制限の場合、各 OLE 項目は 1 文字としてカウントされます。

詳細については、Windows SDK の EM_EXLIMITTEXT に関する記事を参照してください。

// 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_myRichEditCtrl.GetDC();
pDC->GetTextMetrics(&tm);
m_myRichEditCtrl.ReleaseDC(pDC);

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

CRichEditCtrl::LineFromChar

指定した文字インデックスを含む行の行番号を取得します。

long LineFromChar(long nIndex) const;

パラメーター

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

戻り値

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

解説

文字インデックスは、リッチ エディット コントロールの先頭からの文字数です。 文字カウントの場合、OLE 項目は 1 文字としてカウントされます。

詳細については、Windows SDK の EM_EXLINEFROMCHAR に関する記事を参照してください。

// The index of the char to get information on.
int nIndex = 11;

CString strText;

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

// Dump the index, character and line number.
TRACE(_T("nIndex = %d, character = %c, line = %d\r\n"),
      nIndex, strText[0], m_myRichEditCtrl.LineFromChar(nIndex));

CRichEditCtrl::LineIndex

この CRichEditCtrl オブジェクト内の行の文字インデックスを取得します。

int LineIndex(int nLine = -1) const;

パラメーター

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

戻り値

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

解説

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

詳細については、Windows SDK の EM_LINEINDEX に関する記事を参照してください。

// The string for replacing.
LPCTSTR lpszmyString = _T("Hello, I'm the new second line.");

int nBegin, nEnd, nIndex;

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

CRichEditCtrl::LineLength

リッチ エディット コントロール内の行の長さを取得します。

int LineLength(int nLine = -1) const;

パラメーター

nLine
長さを取得する行内の文字の文字インデックスを指定します。 このパラメーターが -1 の場合、現在の行 (キャレットを含む行) の長さが返されます。行内で選択したテキストの長さは含まれません。 1 行の編集コントロールに対して LineLength が呼び出されると、このパラメーターは無視されます。

戻り値

複数行の編集コントロールに対してLineLengthが呼び出されると、戻り値はnLineで指定された行の長さ (TCHAR) になります。 行の末尾に復帰文字は含まれません。 単一行の編集コントロールに対して LineLength が呼び出されると、戻り値は編集コントロール内のテキストの長さ ( TCHAR) になります。 nLineがコントロール内の文字数より大きい場合、戻り値は 0 になります。

解説

LineIndex メンバー関数を使用して、このCRichEditCtrl オブジェクト内の特定の行番号の文字インデックスを取得します。

詳細については、Windows SDK の EM_LINELENGTH に関する記事を参照してください。

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

CRichEditCtrl::LineScroll

複数行の編集コントロールのテキストをスクロールします。

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

パラメーター

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

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

解説

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

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

詳細については、Windows SDK の EM_LINESCROLL に関する記事を参照してください。

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

CRichEditCtrl::Paste

カーソル位置 (キャレットの位置) の CRichEditCtrl にクリップボードからデータを挿入します。

void Paste();

解説

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

詳細については、Windows SDK の WM_PASTE に関する記事を参照してください。

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

CRichEditCtrl::PasteSpecial

特定のクリップボード形式のデータをこの CRichEditCtrl オブジェクトに貼り付けます。

void PasteSpecial(
    UINT nClipFormat,
    DWORD dvAspect = 0,
    HMETAFILE hMF = 0);

パラメーター

nClipFormat
この CRichEditCtrl オブジェクトに貼り付けるクリップボード形式。

dvAspect
クリップボードから取得するデータのデバイスの側面。

hMF
貼り付けるオブジェクトのアイコン ビューを含むメタファイルへのハンドル。

解説

新しいマテリアルがカーソル位置(キャレットの位置)に挿入されます。

詳細については、Windows SDK の EM_PASTESPECIAL に関する記事を参照してください。

// Paste the data from the clipboard as text.
m_myRichEditCtrl.PasteSpecial(CF_TEXT);

CRichEditCtrl::PosFromChar

編集コントロール内の、指定された文字のクライアント領域座標を取得します。

CPoint PosFromChar(UINT nChar) const;

パラメーター

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

戻り値

文字の位置 (x、y)。 1 行の編集コントロールの場合、y 座標は常に 0 です。

解説

詳細については、Windows SDK の EM_POSFROMCHAR に関する記事を参照してください。

CRichEditCtrl::Redo

コントロールの再実行キューの次のアクションをやり直します。

BOOL Redo();

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

詳細については、Windows SDK の EM_REDO に関する記事を参照してください。

CRichEditCtrl::ReplaceSel

この CRichEditCtrl オブジェクト内の現在の選択範囲を、指定したテキストに置き換えます。

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

パラメーター

lpszNewText
置換テキストを含む null で終わる文字列へのポインター。

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

解説

この CRichEditCtrl オブジェクト内のすべてのテキストを置き換えるには、 CWnd::SetWindowTextを使用します。

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

この関数は、挿入されたテキストを既存の文字書式で書式設定します。 (ReplaceSelを呼び出す前に SetSel(0,-1) を呼び出して) テキストの範囲全体を置き換える場合、前の段落の書式を保持する段落の末尾があり、新しく挿入されたテキストによって継承されます。

詳細については、Windows SDK の EM_REPLACESEL に関する記事を参照してください。

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

CRichEditCtrl::RequestResize

この CRichEditCtrl オブジェクトが EN_REQUESTRESIZE 通知メッセージを親ウィンドウに送信するように強制します。

void RequestResize();

解説

この関数は、ボトムレス CRichEditCtrl オブジェクトのCWnd::OnSize処理中に役立ちます。

詳細については、Windows SDK の EM_REQUESTRESIZE メッセージと Bottomless Rich Edit Controls About Rich Edit Controls のセクションを参照してください。

CRichEditCtrl::SetAutoURLDetect

URL を自動的に検出するようにリッチエディット コントロールを設定します。

BOOL SetAutoURLDetect(BOOL bEnable = TRUE);

パラメーター

bEnable
コントロールが URL を自動的に検出するように設定されているかどうかを指定します。 TRUE場合は有効になります。 FALSE場合は無効になります。

戻り値

成功した場合は 0、それ以外の場合は 0 以外。 たとえば、メモリ不足が原因でメッセージが失敗する場合があります。

解説

有効にすると、リッチ エディット コントロールはテキストをスキャンして、標準の URL 形式と一致するかどうかを判断します。 これらの URL 形式の一覧については、Windows SDK の EM_AUTOURLDETECT を参照してください。

Note

編集コントロールが URL 以外のテキストにCFE_LINK効果を使用する場合は、SetAutoURLDetectTRUEに設定しないでください。 SetAutoURLDetect は、URL に対してこの効果を有効にし、他のすべてのテキストに対して無効にします。 CFE_LINK効果の詳細については、EN_LINKを参照してください。

CRichEditCtrl::SetBackgroundColor

この CRichEditCtrl オブジェクトの背景色を設定します。

COLORREF SetBackgroundColor(
    BOOL bSysColor,
    COLORREF cr);

パラメーター

bSysColor
背景色をシステム値に設定する必要があるかどうかを示します。 この値が TRUEの場合、 cr は無視されます。

cr
要求された背景色。 bSysColorFALSEされている場合にのみ使用されます。

戻り値

この CRichEditCtrl オブジェクトの前の背景色。

解説

背景色は、システム値または指定した COLORREF 値に設定できます。

詳細については、Windows SDK のメッセージとCOLORREF構造EM_SETBKGNDCOLOR参照してください。

// Use red as the background color.
m_myRichEditCtrl.SetBackgroundColor(FALSE, RGB(255, 0, 0));

CRichEditCtrl::SetDefaultCharFormat

この CRichEditCtrl オブジェクトの新しいテキストの文字書式属性を設定します。

BOOL SetDefaultCharFormat(CHARFORMAT& cf);
BOOL SetDefaultCharFormat(CHARFORMAT2& cf);

パラメーター

cf
最初のバージョンでは、新しい既定の文字書式設定属性を含む CHARFORMAT 構造体へのポインター。

2 番目のバージョンでは、既定の文字書式属性を含む、CHARFORMAT構造体に対する Rich Edit 2.0 拡張機能であるCHARFORMAT2構造体へのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

cfdwMask メンバーによって指定された属性のみが、この関数によって変更されます。

詳細については、Windows SDK の EM_SETCHARFORMAT メッセージと CHARFORMAT および CHARFORMAT2 の構造を参照してください。

CHARFORMAT cf = {0};

// Modify the default character format so that all new
// text is striked out and not bold.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_STRIKEOUT;
m_myRichEditCtrl.SetDefaultCharFormat(cf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetDefaultCharFormat(cf);
ASSERT((cf.dwMask & (CFM_STRIKEOUT | CFM_BOLD)) ==
       (CFM_STRIKEOUT | CFM_BOLD));
ASSERT((cf.dwEffects & (CFE_STRIKEOUT | CFE_BOLD)) == CFE_STRIKEOUT);

CRichEditCtrl::SetEventMask

この CRichEditCtrl オブジェクトのイベント マスクを設定します。

DWORD SetEventMask(DWORD dwEventMask);

パラメーター

dwEventMask
この CRichEditCtrl オブジェクトの新しいイベント マスク。

戻り値

前のイベント マスク。

解説

イベント マスクは、 CRichEditCtrl オブジェクトが親ウィンドウに送信する通知メッセージを指定します。

詳細については、Windows SDK の EM_SETEVENTMASK に関する記事を参照してください。

// Set the event mask so that the parent gets notified when the text
// of the rich edit control changes.
m_myRichEditCtrl.SetEventMask(m_myRichEditCtrl.GetEventMask() |
                              ENM_CHANGE);

CRichEditCtrl::SetModify

編集コントロールの変更されたフラグを設定またはクリアします。

void SetModify(BOOL bModified = TRUE);

パラメーター

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

解説

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

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

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

CRichEditCtrl::SetOLECallback

この CRichEditCtrl オブジェクトに、OLE 関連のリソースと情報へのアクセスに使用する IRichEditOleCallback オブジェクトを指定します。

BOOL SetOLECallback(IRichEditOleCallback* pCallback);

パラメーター

pCallback
このCRichEditCtrl オブジェクトが OLE 関連のリソースと情報を取得するために使用するIRichEditOleCallback オブジェクトへのポインター。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この CRichEditCtrl オブジェクトは IUnknown::AddRef を呼び出して、 pCallbackで指定された COM オブジェクトの使用数をインクリメントします。

詳細については、Windows SDK のメッセージとIRichEditOleCallbackインターフェイスEM_SETOLECALLBACK参照してください。

CRichEditCtrl::SetOptions

この CRichEditCtrl オブジェクトのオプションを設定します。

void SetOptions(
    WORD wOp,
    DWORD dwFlags);

パラメーター

wOp
操作の種類を示します。 次のいずれかの値です。

  • ECOOP_SET オプションは、 dwFlagsで指定されたものに設定します。

  • ECOOP_OR 現在のオプションを、 dwFlagsで指定されているものと組み合わせます。

  • ECOOP_ANDdwFlagsで指定されている現在のオプションのみを保持します。

  • ECOOP_XOR 論理的に排他的か、 dwFlagsで指定されたオプションを持つ現在のオプション。

dwFlags
豊富な編集オプション。 フラグの値は、「解説」セクションに記載されています。

解説

オプションには、次の値を組み合わせて使用できます。

  • ECO_AUTOWORDSELECTION ダブルクリック時の単語の自動選択。

  • ECO_AUTOVSCROLL ユーザーが行の末尾に文字を入力すると、テキストを 10 文字だけ右に自動的にスクロールします。 ユーザーが Enter キーを押すと、コントロールはすべてのテキストを 0 の位置までスクロールします。

  • ECO_AUTOHSCROLL ユーザーが最後の行で Enter キーを押すと、テキストが 1 ページ上に自動的にスクロールされます。

  • ECO_NOHIDESEL 編集コントロールの既定の動作を否定します。 既定の動作では、コントロールが入力フォーカスを失ったときに選択範囲が非表示になり、コントロールが入力フォーカスを受け取ったときに選択範囲が表示されます。 ECO_NOHIDESEL指定した場合、コントロールにフォーカスがない場合でも、選択したテキストは反転されます。

  • ECO_READONLY ユーザーが編集コントロールにテキストを入力または編集できないようにします。

  • ECO_WANTRETURN ダイアログ ボックスの複数行のリッチ エディット コントロールにテキストを入力するときに、ユーザーが Enter キーを押したときに復帰を挿入するように指定します。 このスタイルを指定しない場合、Enter キーを押すと、リッチエディット コントロールの親ウィンドウにコマンドが送信されます。これは、親ウィンドウの既定のボタン (ダイアログ ボックスの [OK] ボタンなど) をクリックするのと同じになります。 このスタイルは、1 行の編集コントロールには影響しません。

  • ECO_SAVESEL コントロールがフォーカスを失ったときに選択範囲を保持します。 既定では、フォーカスを取り戻すと、コントロールの内容全体が選択されます。

  • ECO_VERTICAL テキストとオブジェクトを垂直方向に描画します。 アジア言語でのみ使用できます。

詳細については、Windows SDK の EM_SETOPTIONS に関する記事を参照してください。

// Add auto horizontal and vertical scrolling.
m_myRichEditCtrl.SetOptions(ECOOP_OR, ECO_AUTOVSCROLL |
                                          ECO_AUTOHSCROLL);

CRichEditCtrl::SetParaFormat

この CRichEditCtrl オブジェクトの現在の選択範囲の段落書式属性を設定します。

BOOL SetParaFormat(PARAFORMAT& pf);
BOOL SetParaFormat(PARAFORMAT2& pf);

パラメーター

pf
最初のバージョンでは、新しい既定の段落書式属性を含む PARAFORMAT 構造体へのポインター。

2 番目のバージョンでは、 PARAFORMAT2 構造体へのポインター。これは、既定の文字書式属性を保持する、 PARAFORMAT 構造体に対する Rich Edit 2.0 拡張機能です。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

pfdwMask メンバーによって指定された属性のみが、この関数によって変更されます。

詳細については、Windows SDK の EM_SETPARAFORMAT メッセージと PARAFORMAT および PARAFORMAT2 の構造を参照してください。

PARAFORMAT pf;

// Modify the paragraph format so that the text is centered.
pf.cbSize = sizeof(PARAFORMAT);
pf.dwMask = PFM_ALIGNMENT;
pf.wAlignment = PFA_CENTER;
m_myRichEditCtrl.SetParaFormat(pf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetParaFormat(pf);
ASSERT(pf.dwMask &PFM_ALIGNMENT);
ASSERT(pf.wAlignment == PFA_CENTER);

CRichEditCtrl::SetPunctuation

リッチ エディット コントロールの句読点を設定します。

BOOL SetPunctuation(
    UINT fType,
    PUNCTUATION* lpPunc);

パラメーター

fType
句読点フラグ。 使用可能な値の一覧については、Windows SDK のEM_SETPUNCTUATIONfType パラメーターを参照してください。

lpPunc
Windows SDK で説明されているように、 PUNCTUATION 構造体へのポインター。

戻り値

成功した場合は 0 以外。それ以外の場合は 0。

解説

このメンバー関数は、オペレーティング システムのアジア言語バージョンでのみ使用できます。

CRichEditCtrl::SetReadOnly

このCRichEditCtrl オブジェクトのECO_READONLY オプションを変更します。

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

パラメーター

bReadOnly
この CRichEditCtrl オブジェクトを読み取り専用にする必要があるかどうかを示します。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

このオプションの簡単な説明については、 SetOptionsを参照してください。 この関数を使用して、この CRichEditCtrl オブジェクトのすべてのオプションを設定できます。

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

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

CRichEditCtrl::SetRect

この CRichEditCtrl オブジェクトの書式設定四角形を設定します。

void SetRect(LPCRECT lpRect);

パラメーター

lpRect
CRect または、書式設定する四角形の新しい境界を示す RECT へのポインター。

解説

書式設定の四角形は、テキストの制限する四角形です。 制限する四角形は、リッチ エディット コントロール ウィンドウのサイズに依存しません。 この CRichEditCtrl オブジェクトが最初に作成されるとき、書式設定の四角形はウィンドウのクライアント領域と同じサイズになります。 SetRectを使用して、書式設定の四角形をリッチエディット ウィンドウよりも大きくまたは小さくします。

詳細については、Windows SDK の EM_SETRECT に関する記事を参照してください。

CRect r;

m_myRichEditCtrl.GetRect(&r);

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

CRichEditCtrl::SetSel

この CRichEditCtrl オブジェクト内の選択範囲を設定します。

void SetSel(
    long nStartChar,
    long nEndChar);

void SetSel(CHARRANGE& cr);

パラメーター

nStartChar
選択範囲の最初の文字の 0 から始まるインデックス。

nEndChar
選択範囲の最後の文字の 0 から始まるインデックス。

cr
CHARRANGE 現在の選択範囲の境界を保持する構造体。

解説

この関数の 2 つの形式は、選択範囲の境界を設定する別の方法を提供します。 これらのフォームの簡単な説明は次のとおりです。

  • SetSel( cr ) このフォームでは、cpMinおよびcpMaxメンバーを持つCHARRANGE構造体を使用して境界を設定します。

  • SetSel( nStartChar , nEndChar ) このフォームでは、パラメーター nStartCharnEndChar を使用して境界を設定します。

キャレットは、開始 (cpMin または nStartChar) および終了 (cpMax または nEndChar) インデックスの大きい方で示される選択範囲の末尾に配置されます。 この関数は、キャレットが表示されるように CRichEditCtrl の内容をスクロールします。

この CRichEditCtrl オブジェクト内のすべてのテキストを選択するには、開始インデックスが 0 で終了インデックスが - 1 の SetSel を呼び出します。

詳細については、Windows SDK のメッセージとCHARRANGE構造EM_EXSETSEL参照してください。

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

CRichEditCtrl::SetSelectionCharFormat

この CRichEditCtrl オブジェクトの現在の選択範囲のテキストの文字書式属性を設定します。

BOOL SetSelectionCharFormat(CHARFORMAT& cf);
BOOL SetSelectionCharFormat(CHARFORMAT2& cf);

パラメーター

cf
最初のバージョンでは、現在の選択範囲の新しい文字書式属性を含む CHARFORMAT 構造体へのポインター。

2 番目のバージョンでは、 CHARFORMAT2 構造体へのポインター。これは、現在の選択範囲の新しい文字書式属性を含む、 CHARFORMAT 構造体の Rich Edit 2.0 拡張機能です。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

cfdwMask メンバーによって指定された属性のみが、この関数によって変更されます。

詳細については、Windows SDK の EM_SETCHARFORMATCHARFORMAT および CHARFORMAT2 の構造を参照してください。

CHARFORMAT cf;

// Modify the selection format so that the selected text is
// displayed in bold and not striked out.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_BOLD;
m_myRichEditCtrl.SetSelectionCharFormat(cf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetSelectionCharFormat(cf);
ASSERT((cf.dwMask & (CFM_STRIKEOUT | CFM_BOLD)) ==
       (CFM_STRIKEOUT | CFM_BOLD));
ASSERT((cf.dwEffects & (CFE_STRIKEOUT | CFE_BOLD)) == CFE_BOLD);

CRichEditCtrl::SetTargetDevice

この CRichEditCtrl オブジェクトで WYSIWYG (表示される内容) の書式設定に使用するターゲット デバイスと線の幅を設定します。

BOOL SetTargetDevice(
    HDC hDC,
    long lLineWidth);

BOOL SetTargetDevice(
    CDC& dc,
    long lLineWidth);

パラメーター

hDC
新しいターゲット デバイスのデバイス コンテキストを処理します。

lLineWidth
書式設定に使用する線の幅。

dc
CDC 新しいターゲット デバイスの場合は〘。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

この関数が成功した場合、リッチ エディット コントロールは、パラメーターとして渡されたデバイス コンテキストを所有します。 その場合、呼び出し元の関数はデバイス コンテキストを破棄しないでください。

詳細については、Windows SDK の EM_SETTARGETDEVICE に関する記事を参照してください。

// First obtain a pointer to a printer DC.
CPageSetupDialog psDlg;
if (IDOK == psDlg.DoModal())
{
   CDC *pMyPrinterDC = CDC::FromHandle(psDlg.CreatePrinterDC());

   // Get line width information from the printer.
   long lLineWidth = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALWIDTH),
                              1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSX));

   // Set the printer as the target device.
   m_myRichEditCtrl.SetTargetDevice(*pMyPrinterDC, lLineWidth);

   pMyPrinterDC->DeleteDC();
}

CRichEditCtrl::SetTextMode

リッチ エディット コントロールのテキスト モードまたは元に戻す、やり直しのレベルを設定します。

BOOL SetTextMode(UINT fMode);

パラメーター

fMode
コントロールのテキスト モードと元に戻すレベルのパラメーターの新しい設定を指定します。 使用可能な値の一覧については、Windows SDK の EM_SETTEXTMODE の mode パラメーターを参照してください。

戻り値

成功した場合は 0、それ以外の場合は 0 以外。

解説

テキスト モードの詳細については、Windows SDK の EM_SETTEXTMODE を参照してください。

コントロールにテキストが含まれている場合、このメンバー関数は失敗します。 コントロールが空であることを確認するには、空の文字列で WM_SETTEXT メッセージを送信します。

CRichEditCtrl::SetUndoLimit

元に戻すキューに格納できるアクションの最大数を設定します。

UINT SetUndoLimit(UINT nLimit);

パラメーター

nLimit
元に戻すキューに格納できるアクションの最大数を指定します。 元に戻すを無効にするには、0 に設定します。

戻り値

リッチ エディット コントロールの元に戻す操作の新しい最大数。

解説

既定では、元に戻すキュー内のアクションの最大数は 100 です。 この数を増やす場合は、新しい数に対応できる十分なメモリが必要です。 パフォーマンスを向上させるには、制限を可能な限り小さい値に設定します。

CRichEditCtrl::SetWordCharFormat

この CRichEditCtrl オブジェクトで現在選択されている単語の文字書式属性を設定します。

BOOL SetWordCharFormat(CHARFORMAT& cf);
BOOL SetWordCharFormat(CHARFORMAT2& cf);

パラメーター

cf
最初のバージョンでは、現在選択されている単語の新しい文字書式属性を含む CHARFORMAT 構造体へのポインター。

2 番目のバージョンでは、 CHARFORMAT2 構造体へのポインター。これは、現在選択されている単語の新しい文字書式属性を含む、 CHARFORMAT 構造体の Rich Edit 2.0 拡張機能です。

戻り値

正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。

解説

cfdwMask メンバーによって指定された属性のみが、この関数によって変更されます。

詳細については、Windows SDK の EM_SETCHARFORMAT メッセージと CHARFORMAT および CHARFORMAT2 の構造を参照してください。

CHARFORMAT cf;

// Modify the word format so that the selected word is
// displayed in bold and not striked out.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_BOLD;
m_myRichEditCtrl.SetWordCharFormat(cf);

CRichEditCtrl::SetWordWrapMode

リッチ エディット コントロールの word-wrapping と word-breaking オプションを設定します。

UINT SetWordWrapMode(UINT uFlags) const;

パラメーター

uFlags
単語の折り返しと改行に設定するオプション。 使用可能なオプションの一覧については、Windows SDK の EM_SETWORDWRAPMODE を参照してください。

戻り値

現在の単語折り返しオプションと単語区切りオプション。

解説

このメッセージは、オペレーティング システムのアジア言語バージョンでのみ使用できます。

CRichEditCtrl::StopGroupTyping

コントロールが現在の元に戻す操作に追加の入力操作を収集しないようにします。

void StopGroupTyping();

解説

コントロールは、次の入力操作 (ある場合) を元に戻すキューの新しいアクションに格納します。

詳細については、Windows SDK の EM_STOPGROUPTYPING に関する記事を参照してください。

CRichEditCtrl::StreamIn

この CRichEditCtrl オブジェクト内のテキストを、指定した入力ストリームのテキストに置き換えます。

long StreamIn(
    int nFormat,
    EDITSTREAM& es);

パラメーター

nFormat
入力データ形式を指定するフラグ。 詳細については、次の「解説」を参照してください。

es
EDITSTREAM 入力ストリームを指定する構造体。 詳細については、次の「解説」を参照してください。

戻り値

入力ストリームから読み取られた文字数。

解説

nFormatの値は、次のいずれかである必要があります。

  • SF_TEXT テキストの読み取りのみを示します。

  • SF_RTF テキストの読み取りと書式設定を示します。

これらの値は、 SFF_SELECTIONと組み合わせることができます。 SFF_SELECTIONが指定されている場合、StreamInは現在の選択範囲を入力ストリームの内容に置き換えます。 指定しない場合、 StreamIn はこの CRichEditCtrl オブジェクトの内容全体を置き換えます。

EDITSTREAM パラメーター esでは、バッファーにテキストを格納するコールバック関数を指定します。 このコールバック関数は、入力ストリームが使い果たされるまで繰り返し呼び出されます。

詳細については、Windows SDK のメッセージとEDITSTREAM構造EM_STREAMIN参照してください。

// My callback procedure that reads the rich edit control contents
// from a file.
static DWORD CALLBACK 
MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
   CFile* pFile = (CFile*) dwCookie;

   *pcb = pFile->Read(pbBuff, cb);

   return 0;
}

 

// The example code.

// The file from which to load the contents of the rich edit control.
CFile cFile(TEXT("My_RichEdit_InFile.rtf"), CFile::modeRead);
EDITSTREAM es;

es.dwCookie = (DWORD)&cFile;
es.pfnCallback = MyStreamInCallback;
m_myRichEditCtrl.StreamIn(SF_RTF, es);

CRichEditCtrl::StreamOut

この CRichEditCtrl オブジェクトの内容を、指定した出力ストリームに書き込みます。

long StreamOut(
    int nFormat,
    EDITSTREAM& es);

パラメーター

nFormat
出力データ形式を指定するフラグ。 詳細については、次の「解説」を参照してください。

es
EDITSTREAM 出力ストリームを指定する構造体。 詳細については、次の「解説」を参照してください。

戻り値

出力ストリームに書き込まれた文字数。

解説

nFormatの値は、次のいずれかである必要があります。

  • SF_TEXT テキストの書き込みのみを示します。

  • SF_RTF テキストの書き込みと書式設定を示します。

  • SF_RTFNOOBJS OLE 項目をスペースに置き換えて、テキストと書式設定を記述することを示します。

  • SF_TEXTIZED OLE アイテムのテキスト表現を使用して、テキストの書き込みと書式設定を示します。

これらの値は、 SFF_SELECTIONと組み合わせることができます。 SFF_SELECTIONを指定した場合、StreamOutは現在の選択範囲を出力ストリームに書き込みます。 指定しない場合、 StreamOut はこの CRichEditCtrl オブジェクトの内容全体を書き出します。

EDITSTREAM パラメーター esでは、バッファーにテキストを格納するコールバック関数を指定します。 このコールバック関数は、出力ストリームが使い果たされるまで繰り返し呼び出されます。

詳細については、Windows SDK のメッセージとEDITSTREAM構造EM_STREAMOUT参照してください。

// My callback procedure that writes the rich edit control contents
// to a file.
static DWORD CALLBACK 
MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
   CFile* pFile = (CFile*) dwCookie;

   pFile->Write(pbBuff, cb);
   *pcb = cb;

   return 0;
}

 

// The example code.

// The file to store the contents of the rich edit control.
CFile cFile(TEXT("My_RichEdit_OutFile.rtf"),
            CFile::modeCreate | CFile::modeWrite);
EDITSTREAM es;

es.dwCookie = (DWORD)&cFile;
es.pfnCallback = MyStreamOutCallback;
m_myRichEditCtrl.StreamOut(SF_RTF, es);

CRichEditCtrl::Undo

リッチ エディット コントロールの最後の操作を元に戻します。

BOOL Undo();

戻り値

元に戻す操作が成功した場合は 0 以外。それ以外の場合は 0。

解説

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

詳細については、Windows SDK の EM_UNDO に関する記事を参照してください。

CanUndo の例を参照してください。

関連項目

MFC サンプル ワードパッド
CWnd クラス
階層図
CEdit クラス
CRichEditView クラス