次の方法で共有


CRichEditView クラス

CRichEditDocCRichEditCntrItem を使用すると、MFC のドキュメント ビュー アーキテクチャのコンテキスト内でリッチエディット コントロールの機能が提供されます。

構文

class CRichEditView : public CCtrlView

メンバー

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

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

パブリック メソッド

名前 説明
CRichEditView::AdjustDialogPosition ダイアログ ボックスを移動して、現在の選択範囲が隠されないようにします。
CRichEditView::CanPaste クリップボードに、リッチエディット ビューに貼り付けることができるデータが含まれているかどうかを示します。
CRichEditView::D oPaste OLE アイテムをこのリッチエディット ビューに貼り付けます。
CRichEditView::FindText 待機カーソルを呼び出して、指定したテキストを検索します。
CRichEditView::FindTextSimple 指定したテキストを検索します。
CRichEditView::GetCharFormatSelection 現在の選択範囲の文字書式属性を取得します。
CRichEditView::GetDocument 関連する CRichEditDoc へのポインターを取得します。
CRichEditView::GetInPlaceActiveItem リッチエディット ビューで現在アクティブな OLE アイテムを取得します。
CRichEditView::GetMargins このリッチ エディット ビューの余白を取得します。
CRichEditView::GetPageRect このリッチ エディット ビューのページ四角形を取得します。
CRichEditView::GetPaperSize このリッチ エディット ビューの用紙サイズを取得します。
CRichEditView::GetParaFormatSelection 現在の選択範囲の段落書式属性を取得します。
CRichEditView::GetPrintRect このリッチ エディット ビューの印刷四角形を取得します。
CRichEditView::GetPrintWidth このリッチ エディット ビューの印刷幅を取得します。
CRichEditView::GetRichEditCtrl リッチ エディット コントロールを取得します。
CRichEditView::GetSelectedItem リッチエディット ビューから選択した項目を取得します。
CRichEditView::GetTextLength リッチ エディット ビューのテキストの長さを取得します。
CRichEditView::GetTextLengthEx リッチエディット ビューの文字数またはバイト数を取得します。 長さを決定する方法の拡張フラグ リスト。
CRichEditView::InsertFileAsObject OLE アイテムとしてファイルを挿入します。
CRichEditView::InsertItem 新しい項目を OLE アイテムとして挿入します。
CRichEditView::IsRichEditFormat クリップボードにリッチ エディット形式またはテキスト形式のデータが含まれているかどうかを示します。
CRichEditView::OnCharEffect 現在の選択範囲の文字書式を切り替えます。
CRichEditView::OnParaAlign 段落の配置を変更します。
CRichEditView::OnUpdateCharEffect 文字パブリック メンバー関数のコマンド UI を更新します。
CRichEditView::OnUpdateParaAlign 段落パブリック メンバー関数のコマンド UI を更新します。
CRichEditView::P rintInsideRect 指定した四角形内の指定したテキストを書式設定します。
CRichEditView::P rintPage 指定したページ内の指定したテキストを書式設定します。
CRichEditView::SetCharFormat 現在の選択範囲の文字書式属性を設定します。
CRichEditView::SetMargins このリッチ エディット ビューの余白を設定します。
CRichEditView::SetPaperSize このリッチ エディット ビューの用紙サイズを設定します。
CRichEditView::SetParaFormat 現在の選択範囲の段落書式属性を設定します。
CRichEditView::TextNotFound コントロールの内部検索状態をリセットします。

保護メソッド

名前 説明
CRichEditView::GetClipboardData このリッチ エディット ビューの範囲の Clipboard オブジェクトを取得します。
CRichEditView::GetContextMenu マウスの右ボタンダウンで使用するコンテキスト メニューを取得します。
CRichEditView::IsSelected 指定した OLE 項目が選択されているかどうかを示します。
CRichEditView::OnFindNext 次に出現する部分文字列を検索します。
CRichEditView::OnInitialUpdate 最初にドキュメントに添付されたときにビューを更新します。
CRichEditView::OnPasteNativeObject OLE アイテムからネイティブ データを取得します。
CRichEditView::OnPrinterChanged 特定のデバイスに印刷特性を設定します。
CRichEditView::OnReplaceAll 指定された文字列のすべての出現箇所を新しい文字列に置き換えます。
CRichEditView::OnReplaceSel 現在の選択範囲を置き換えます。
CRichEditView::OnTextNotFound 要求されたテキストが見つからなかったことを示すユーザー通知を処理します。
CRichEditView::QueryAcceptData IDataObjectのデータに関するクエリ。
CRichEditView::WrapChanged m_nWordWrapの値に基づいて、このリッチ エディット ビューのターゲット出力デバイスを調整します。

パブリック データ メンバー

名前 説明
CRichEditView::m_nBulletIndent 箇条書きのインデントの量を示します。
CRichEditView::m_nWordWrap ワード ラップ制約を示します。

解説

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

CRichEditView は、テキストとその書式設定の特性を保持します。 CRichEditDoc では、ビュー内にある OLE クライアント項目の一覧が保持されます。 CRichEditCntrItem は、OLE クライアント アイテムに対するコンテナー側のアクセスを提供します。

この Windows 共通コントロール (したがって、 CRichEditCtrl および関連クラス) は、Windows 95/98 および Windows NT バージョン 3.51 以降で実行されているプログラムでのみ使用できます。

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

継承階層

CObject

CCmdTarget

CWnd

CView

CCtrlView

CRichEditView

要件

Header: afxrich.h

CRichEditView::AdjustDialogPosition

この関数を呼び出して、指定されたダイアログ ボックスを移動して、現在の選択範囲が隠されないようにします。

void AdjustDialogPosition(CDialog* pDlg);

パラメーター

pDlg
CDialog オブジェクトを指すポインター。

CRichEditView::CanPaste

この関数を呼び出して、クリップボードにこのリッチ エディット ビューに貼り付けることができる情報が含まれているかどうかを確認します。

BOOL CanPaste() const;

戻り値

クリップボードに、このリッチ エディット ビューで受け入れ可能な形式のデータが含まれている場合は 0 以外。それ以外の場合は 0。

CRichEditView::CRichEditView

この関数を呼び出して、 CRichEditView オブジェクトを作成します。

CRichEditView();

CRichEditView::D oPaste

この関数を呼び出して、ole 項目を dataobj このリッチ エディット ドキュメント/ビューに貼り付けます。

void DoPaste(
    COleDataObject& dataobj,
    CLIPFORMAT cf,
    HMETAFILEPICT hMetaPict);

パラメーター

dataobj
貼り付けるデータを含む COleDataObject

cf
目的のクリップボード形式。

hMetaPict
貼り付ける項目を表すメタファイル。

解説

フレームワークは、 QueryAcceptData の既定の実装の一部としてこの関数を呼び出します。

この関数は、Paste Special のハンドラーの結果に基づいて、貼り付けの種類を決定します。 cf が 0 の場合、新しい項目は現在のアイコン表現を使用します。 cf が 0 以外で、hMetaPict が NULL でない場合、新しい項目はその表現に hMetaPict を使用します。

CRichEditView::FindText

この関数を呼び出して、指定したテキストを検索し、現在の選択範囲に設定します。

BOOL FindText(
    LPCTSTR lpszFind,
    BOOL bCase = TRUE,
    BOOL bWord = TRUE,
    BOOL bNext = TRUE);

パラメーター

lpszFind
検索する文字列を格納します。

bCase
検索で大文字と小文字が区別されるかどうかを示します。

bWord
検索が単語の一部ではなく、単語全体にのみ一致するかどうかを示します。

bNext
検索の方向を示します。 TRUE の場合、検索方向はバッファーの末尾に向かって行います。 FALSE の場合、検索方向はバッファーの先頭に向かって行います。

戻り値

lpszFind テキストが見つかった場合は 0 以外、それ以外の場合は 0。

解説

この関数は、検索操作中に待機カーソルを表示します。

void CMyRichEditView::OnReplaceAll(LPCTSTR lpszFind, LPCTSTR lpszReplace,
   BOOL bCase, BOOL bWord)
{
   CWaitCursor wait;
   // no selection or different than what we are looking for
   if (!FindText(lpszFind, bCase, bWord))
   {
      OnTextNotFound(lpszFind);
      return;
   }

   GetRichEditCtrl().HideSelection(TRUE, FALSE);
   m_nNumReplaced = 0;
   do
   {
      GetRichEditCtrl().ReplaceSel(lpszReplace);
      m_nNumReplaced++;  // Record the number of replacements

   } while (FindTextSimple(lpszFind));
   GetRichEditCtrl().HideSelection(FALSE, FALSE);
}

CRichEditView::FindTextSimple

この関数を呼び出して、指定したテキストを検索し、現在の選択範囲に設定します。

BOOL FindTextSimple(
    LPCTSTR lpszFind,
    BOOL bCase = TRUE,
    BOOL bWord = TRUE,
    BOOL bNext = TRUE);

パラメーター

lpszFind
検索する文字列を格納します。

bCase
検索で大文字と小文字が区別されるかどうかを示します。

bWord
検索が単語の一部ではなく、単語全体にのみ一致するかどうかを示します。

bNext
検索の方向を示します。 TRUE の場合、検索方向はバッファーの末尾に向かって行います。 FALSE の場合、検索方向はバッファーの先頭に向かって行います。

戻り値

lpszFind テキストが見つかった場合は 0 以外、それ以外の場合は 0。

CRichEditView::FindText の例を参照してください。

CRichEditView::GetCharFormatSelection

現在の選択範囲の文字書式属性を取得するには、この関数を呼び出します。

CHARFORMAT2& GetCharFormatSelection();

戻り値

現在の選択範囲の文字書式属性を含む CHARFORMAT2 構造体。

解説

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

void CMyRichEditView::OnCharUnderline()
{
   CHARFORMAT2 cf;
   cf = GetCharFormatSelection();

   if (!(cf.dwMask & CFM_UNDERLINE) || !(cf.dwEffects & CFE_UNDERLINE))
      cf.dwEffects = CFE_UNDERLINE;
   else
      cf.dwEffects = 0;

   cf.dwMask = CFM_UNDERLINE;
   SetCharFormat(cf);
}

CRichEditView::GetClipboardData

フレームワークは、 IRichEditOleCallback::GetClipboardData の処理の一環としてこの関数を呼び出します。

virtual HRESULT GetClipboardData(
    CHARRANGE* lpchrg,
    DWORD dwReco,
    LPDATAOBJECT lpRichDataObj,
    LPDATAOBJECT* lplpdataobj);

パラメーター

lpchrg
CHARRANGEで指定されたデータ オブジェクトにコピーする文字 (および OLE 項目) の範囲を指定する構造体へのポインターlplpdataobj

dwReco
クリップボード操作フラグ。 これらの値のいずれかを指定できます。

  • RECO_COPYクリップボードにコピーします。

  • RECO_CUTクリップボードに切り取ります。

  • RECO_DRAG ドラッグ操作 (ドラッグ アンド ドロップ)。

  • RECO_DROPドロップ操作 (ドラッグ アンド ドロップ)。

  • RECO_PASTEクリップボードから貼り付けます。

lpRichDataObj
リッチ エディット コントロール (IRichEditOle::GetClipboardData) のクリップボード データを含む IDataObject オブジェクトへのポインター。

lplpdataobj
lpchrg パラメーターで指定された範囲を表すIDataObject オブジェクトのアドレスを受け取るポインター変数へのポインター。 エラーが返された場合、 lplpdataobj の値は無視されます。

戻り値

操作の成功を報告する HRESULT 値。 HRESULT の詳細については、Windows SDK の「 COM エラー コードの構造 」を参照してください。

解説

戻り値が成功を示す場合、IRichEditOleCallback::GetClipboardDatalplpdataobj によってアクセスされたIDataObjectを返します。それ以外の場合は、lpRichDataObj がアクセスしたを返します。 独自のクリップボード データを指定するには、この関数をオーバーライドします。 この関数の既定の実装では、E_NOTIMPLが返されます。

これは、高度なオーバーライドが可能です。

詳細については、Windows SDK の IRichEditOle::GetClipboardDataIRichEditOleCallback::GetClipboardData、および CHARRANGE に関するページを参照し、Windows SDK の「 IDataObject 」を参照してください。

CRichEditView::GetContextMenu

フレームワークは、 IRichEditOleCallback::GetContextMenu の処理の一環としてこの関数を呼び出します。

virtual HMENU GetContextMenu(
    WORD seltyp,
    LPOLEOBJECT lpoleobj,
    CHARRANGE* lpchrg);

パラメーター

seltyp
選択の種類。 選択の種類の値については、「解説」セクションを参照してください。

lpoleobj
選択範囲に 1 つ以上の OLE 項目が含まれている場合に、最初に選択した OLE オブジェクトを指定する OLEOBJECT 構造体へのポインター。 選択範囲に項目が含まれている場合、 lpoleobj は NULL です。 OLEOBJECT構造体は、OLE オブジェクトの v テーブルへのポインターを保持します。

lpchrg
現在の選択範囲を含む CHARRANGE 構造体へのポインター。

戻り値

コンテキスト メニューへのハンドル。

解説

この関数は、マウスの右ボタンダウン処理の一般的な部分です。

選択の種類は、次のフラグの任意の組み合わせにすることができます。

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

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

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

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

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

既定の実装では、NULL が返されます。 これは、高度なオーバーライドが可能です。

詳細については、Windows SDK IRichEditOleCallback::GetContextMenu および CHARRANGE を参照してください。

CRichEditView::GetDocument

このビューに関連付けられている CRichEditDoc へのポインターを取得するには、この関数を呼び出します。

CRichEditDoc* GetDocument() const;

戻り値

CRichEditView オブジェクトに関連付けられている CRichEditDoc オブジェクトへのポインター。

CRichEditView::GetInPlaceActiveItem

この関数を呼び出して、この CRichEditView オブジェクト内で現在アクティブになっている OLE 項目を取得します。

CRichEditCntrItem* GetInPlaceActiveItem() const;

戻り値

このリッチ エディット ビューの単一のインプレース アクティブ CRichEditCntrItem オブジェクトへのポインター。現在、インプレースアクティブ状態の OLE 項目がない場合は NULL。

CRichEditView::GetMargins

この関数を呼び出して、印刷に使用されている現在の余白を取得します。

CRect GetMargins() const;

戻り値

印刷に使用される余白を、MM_TWIPS単位で測定します。

CRichEditView::GetPageRect

この関数を呼び出して、印刷に使用されるページのサイズを取得します。

CRect GetPageRect() const;

戻り値

印刷で使用されるページの境界を、MM_TWIPS単位で測定します。

解説

この値は用紙サイズに基づきます。

CRichEditView::GetPaperSize

この関数を呼び出して、現在の用紙サイズを取得します。

CSize GetPaperSize() const;

戻り値

印刷に使用する用紙のサイズを、MM_TWIPS単位で測定します。

void CMyRichEditView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
   UNREFERENCED_PARAMETER(pInfo);

   // Get the current paper size and construct an actual printing
   // rectangle by leaving out one half inch margin from each side.
   CSize sizePaper = GetPaperSize();
   CRect rectMargins(720, 720, sizePaper.cx - 720,
      sizePaper.cy - 720);

   // Need to set the margins when printing from CRichEditView
   SetMargins(rectMargins);

   // Set up three rectangular regions spaced an inch apart
   CRect rectHeader(0, 0, rectMargins.right, 1440);
   CRect rectBody(0, 1440, rectMargins.right, 1440 * 2);
   CRect rectFooter(0, 1440 * 2, rectMargins.right, 1440 * 3);

   // Format the first 10 characters in the buffer.
   int nSavedDC = pDC->SaveDC();
   PrintInsideRect(pDC, rectHeader, 0, 10, TRUE); // characters 0-10
   pDC->RestoreDC(nSavedDC);

   // Format the second 10 characters in the buffer.
   nSavedDC = pDC->SaveDC();
   PrintInsideRect(pDC, rectBody, 10, 20, TRUE); // characters 10-20
   pDC->RestoreDC(nSavedDC);

   // Format the third 10 characters in the buffer.
   nSavedDC = pDC->SaveDC();
   PrintInsideRect(pDC, rectFooter, 20, 30, TRUE); // characters 20-30
   pDC->RestoreDC(nSavedDC);

   //   CRichEditView::OnPrint(pDC, pInfo);
}

CRichEditView::GetParaFormatSelection

現在の選択範囲の段落書式属性を取得するには、この関数を呼び出します。

PARAFORMAT2& GetParaFormatSelection();

戻り値

現在の選択範囲の段落書式属性を含む PARAFORMAT2 構造体。

解説

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

CRichEditView::GetPrintRect

この関数を呼び出して、ページ四角形内の印刷領域の境界を取得します。

CRect GetPrintRect() const;

戻り値

印刷に使用される画像領域の境界を、MM_TWIPS単位で測定します。

void CMyRichEditView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
   CRect rectPrintPage = GetPrintRect();  // Measured in MM_TWIPS

   pInfo->SetMaxPage((m_nDocSizeInInches * 1440) / rectPrintPage.Height());

   CRichEditView::OnBeginPrinting(pDC, pInfo);
}

CRichEditView::GetPrintWidth

この関数を呼び出して、印刷領域の幅を決定します。

int GetPrintWidth() const;

戻り値

印刷領域の幅を、MM_TWIPS単位で測定します。

CRichEditView::GetRichEditCtrl

この関数を呼び出して、CRichEditView オブジェクトに関連付けられている CRichEditCtrl オブジェクトを取得します。

CRichEditCtrl& GetRichEditCtrl() const;

戻り値

このビューの CRichEditCtrl オブジェクト。

CRichEditView::FindText の例を参照してください。

CRichEditView::GetSelectedItem

この関数を呼び出して、このCRichEditView オブジェクトで現在選択されている OLE 項目 (CRichEditCntrItem オブジェクト) を取得します。

CRichEditCntrItem* GetSelectedItem() const;

戻り値

CRichEditView オブジェクトで選択CRichEditCntrItem オブジェクトへのポインター。このビューで項目が選択されていない場合は NULL。

CRichEditView::GetTextLength

この CRichEditView オブジェクト内のテキストの長さを取得するには、この関数を呼び出します。

long GetTextLength() const;

戻り値

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

CRichEditView::GetTextLengthEx

このメンバー関数を呼び出して、この CRichEditView オブジェクト内のテキストの長さを計算します。

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

パラメーター

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

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

戻り値

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

解説

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

CRichEditView::InsertFileAsObject

この関数を呼び出して、指定したファイル ( CRichEditCntrItem オブジェクトとして) をリッチエディット ビューに挿入します。

void InsertFileAsObject(LPCTSTR lpszFileName);

パラメーター

lpszFileName
挿入するファイルの名前を含む文字列。

CRichEditView::InsertItem

この関数を呼び出して、 CRichEditCntrItem オブジェクトをリッチ エディット ビューに挿入します。

HRESULT InsertItem(CRichEditCntrItem* pItem);

パラメーター

pItem
挿入する項目へのポインター。

戻り値

挿入の成功を示す HRESULT 値。

解説

HRESULT の詳細については、Windows SDK の「 COM エラー コードの構造 」を参照してください。

CRichEditView::IsRichEditFormat

この関数を呼び出して、 cf がテキスト、リッチ テキスト、または OLE アイテムを含むリッチ テキストのクリップボード形式であるかどうかを判断します。

static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf);

パラメーター

cf
目的のクリップボード形式。

戻り値

cf がリッチ エディットまたはテキスト クリップボード形式の場合は 0 以外。

CRichEditView::IsSelected

指定した OLE 項目がこのビューで現在選択されているかどうかを確認するには、この関数を呼び出します。

virtual BOOL IsSelected(const CObject* pDocItem) const;

パラメーター

pDocItem
ビュー内のオブジェクトへのポインター。

戻り値

オブジェクトが選択されている場合は 0 以外。それ以外の場合は 0。

解説

派生ビュー クラスに OLE 項目の選択を処理するための別のメソッドがある場合は、この関数をオーバーライドします。

CRichEditView::m_nBulletIndent

リスト内の箇条書き項目のインデント。既定では、720 単位 (1/2 インチ) です。

int m_nBulletIndent;

CRichEditView::m_nWordWrap

このリッチ エディット ビューのワード ラップの種類を示します。

int m_nWordWrap;

解説

次のいずれかの値です。

  • WrapNone 自動折り返しがないことを示します。

  • WrapToWindow ウィンドウの幅に基づいて折り返しを示します。

  • WrapToTargetDevice ターゲット デバイスの特性に基づいてワード ラッピングを示します。

CRichEditView::WrapChanged の例を参照してください。

CRichEditView::OnCharEffect

現在の選択範囲の文字書式効果を切り替えるには、この関数を呼び出します。

void OnCharEffect(
    DWORD dwMask,
    DWORD dwEffect);

パラメーター

dwMask
現在の選択範囲で変更する文字書式効果。

dwEffect
切り替える文字の書式設定効果の目的の一覧。

解説

この関数を呼び出すたびに、現在の選択範囲の指定した書式効果が切り替わります。

dwMask および dwEffect パラメーターとその潜在的な値の詳細については、Windows SDK の CHARFORMAT の対応するデータ メンバーを参照してください。

void CMyRichEditView::OnItalic()
{
   OnCharEffect(CFM_ITALIC, CFE_ITALIC);
}

CRichEditView::OnFindNext

[検索/置換] ダイアログ ボックスからコマンドを処理するときにフレームワークによって呼び出されます。

virtual void OnFindNext(
    LPCTSTR lpszFind,
    BOOL bNext,
    BOOL bCase,
    BOOL bWord);

パラメーター

lpszFind
検索する文字列。

bNext
検索する方向: TRUE はダウンを示します。FALSE、up。

bCase
検索で大文字と小文字が区別されるかどうかを示します。

bWord
検索が単語全体のみに一致するかどうかを示します。

解説

この関数を呼び出して、 CRichEditView内のテキストを検索します。 派生ビュー クラスの検索特性を変更するには、この関数をオーバーライドします。

CRichEditView::OnInitialUpdate

ビューが最初にドキュメントにアタッチされた後、ビューが最初に表示される前に、フレームワークによって呼び出されます。

virtual void OnInitialUpdate();

解説

この関数の既定の実装では、ヒント情報なしで CView::OnUpdate メンバー関数を呼び出します (つまり、 lHint パラメーターには既定値 0、 pHint パラメーターには NULL を使用します)。 ドキュメントに関する情報を必要とする 1 回限りの初期化を実行するには、この関数をオーバーライドします。 たとえば、アプリケーションに固定サイズのドキュメントがある場合は、この関数を使用して、ドキュメント サイズに基づいてビューのスクロール制限を初期化できます。 アプリケーションで可変サイズのドキュメントがサポートされている場合は、 OnUpdate を使用して、ドキュメントが変更されるたびにスクロール制限を更新します。

CRichEditView::m_nWordWrap の例を参照してください。

CRichEditView::OnPasteNativeObject

埋め込み項目からネイティブ データを読み込むには、この関数を使用します。

virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg);

パラメーター

lpStg
IStorage オブジェクトへのポインター。

戻り値

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

解説

通常は、IStorageの周囲に COleStreamFile を作成することでこれを行います。 COleStreamFileをアーカイブにアタッチし、CObject::Serialize呼び出してデータを読み込むことができます。

これは、高度なオーバーライドが可能です。

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

CRichEditView::OnParaAlign

選択した段落の段落の配置を変更するには、この関数を呼び出します。

void OnParaAlign(WORD wAlign);

パラメーター

wAlign
必要な段落の配置。 次のいずれかの値です。

  • PFA_LEFT段落を左余白に揃えます。

  • PFA_RIGHT段落を右余白に揃えます。

  • PFA_CENTER余白の間の段落を中央揃えにします。

void CMyRichEditView::OnParaCenter()
{
   OnParaAlign(PFA_CENTER);
}

CRichEditView::OnPrinterChanged

この機能をオーバーライドして、プリンターが変更されたときにこのリッチ・エディット・ビューの特性を変更します。

virtual void OnPrinterChanged(const CDC& dcPrinter);

パラメーター

dcPrinter
新しいプリンターの CDC オブジェクト。

解説

既定の実装では、出力デバイス (プリンター) の物理的な高さと幅に用紙サイズを設定します。 dcPrinterに関連付けられているデバイス コンテキストがない場合、既定の実装では、用紙サイズが 8.5 x 11 インチに設定されます。

CRichEditView::OnReplaceAll

[置換] ダイアログ ボックスから [すべて置換] コマンドを処理するときにフレームワークによって呼び出されます。

virtual void OnReplaceAll(
    LPCTSTR lpszFind,
    LPCTSTR lpszReplace,
    BOOL bCase,
    BOOL bWord);

パラメーター

lpszFind
置き換えるテキスト。

lpszReplace
置換テキスト。

bCase
検索で大文字と小文字が区別されるかどうかを示します。

bWord
検索で単語全体を選択する必要があるかどうかを示します。

解説

この関数を呼び出して、特定のテキストのすべての出現箇所を別の文字列に置き換えます。 このビューの検索特性を変更するには、この関数をオーバーライドします。

CRichEditView::FindText の例を参照してください。

CRichEditView::OnReplaceSel

[置換] ダイアログ ボックスから Replace コマンドを処理するときにフレームワークによって呼び出されます。

virtual void OnReplaceSel(
    LPCTSTR lpszFind,
    BOOL bNext,
    BOOL bCase,
    BOOL bWord,
    LPCTSTR lpszReplace);

パラメーター

lpszFind
置き換えるテキスト。

bNext
検索の方向を示します:TRUE がダウンしています。FALSE、up。

bCase
検索で大文字と小文字が区別されるかどうかを示します。

bWord
検索で単語全体を選択する必要があるかどうかを示します。

lpszReplace
置換テキスト。

解説

この関数を呼び出して、特定のテキストの 1 つの出現箇所を別の文字列に置き換えます。 このビューの検索特性を変更するには、この関数をオーバーライドします。

CRichEditView::OnTextNotFound

検索が失敗するたびにフレームワークによって呼び出されます。

virtual void OnTextNotFound(LPCTSTR lpszFind);

パラメーター

lpszFind
見つからなかったテキスト。

解説

MessageBeepから出力通知を変更するには、この関数をオーバーライドします。

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

void CMyRichEditView::OnTextNotFound(LPCTSTR lpszFind)
{
   // Replace the beep with a message box
   CString str;
   str.Format(_T("'%s' was not found."), lpszFind);
   AfxMessageBox(str);
}

CRichEditView::OnUpdateCharEffect

フレームワークは、この関数を呼び出して、文字効果コマンドのコマンド UI を更新します。

void OnUpdateCharEffect(
    CCmdUI* pCmdUI,
    DWORD dwMask,
    DWORD dwEffect);

パラメーター

pCmdUI
CCmdUI オブジェクトへのポインター。

dwMask
文字書式マスクを示します。

dwEffect
文字の書式設定効果を示します。

解説

mask dwMask は、チェックする文字書式属性を指定します。 flags dwEffect 設定/クリアする文字書式属性を一覧表示します。

dwMask および dwEffect パラメーターとその潜在的な値の詳細については、Windows SDK の CHARFORMAT の対応するデータ メンバーを参照してください。

void CMyRichEditView::OnUpdateCharItalicUI(CCmdUI* pCmdUI)
{
   OnUpdateCharEffect(pCmdUI, CFM_ITALIC, CFE_ITALIC);
}

CRichEditView::OnUpdateParaAlign

フレームワークは、この関数を呼び出して、段落効果コマンドのコマンド UI を更新します。

void OnUpdateParaAlign(
    CCmdUI* pCmdUI,
    WORD wAlign);

パラメーター

pCmdUI
CCmdUI オブジェクトへのポインター。

wAlign
確認する段落の配置。 次のいずれかの値です。

  • PFA_LEFT段落を左余白に揃えます。

  • PFA_RIGHT段落を右余白に揃えます。

  • PFA_CENTER余白の間の段落を中央揃えにします。

void CMyRichEditView::OnUpdateParaCenterUI(CCmdUI* pCmdUI)
{
   OnUpdateParaAlign(pCmdUI, PFA_CENTER);
}

CRichEditView::P rintInsideRect

この関数を呼び出して、pDC で指定されたデバイスのrectLayoutに収まるようにリッチエディット コントロール内のテキストの範囲を書式設定します。

long PrintInsideRect(
    CDC* pDC,
    RECT& rectLayout,
    long nIndexStart,
    long nIndexStop,
    BOOL bOutput);

パラメーター

pDC
出力領域のデバイス コンテキストへのポインター。

rectLayout
出力領域を定義する RECT または CRect

nIndexStart
書式設定する最初の文字の 0 から始まるインデックス。

nIndexStop
書式設定する最後の文字の 0 から始まるインデックス。

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

戻り値

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

解説

通常、この呼び出しの後に、出力を生成する CRichEditCtrl::D isplayBand の呼び出しが続きます。

CRichEditView::GetPaperSize の例を参照してください。

CRichEditView::P rintPage

この関数を呼び出して、 pDC で指定された出力デバイスのリッチ エディット コントロール内のテキストの範囲を書式設定します。

long PrintPage(
    CDC* pDC,
    long nIndexStart,
    long nIndexStop);

パラメーター

pDC
ページ出力のデバイス コンテキストへのポインター。

nIndexStart
書式設定する最初の文字の 0 から始まるインデックス。

nIndexStop
書式設定する最後の文字の 0 から始まるインデックス。

戻り値

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

解説

各ページのレイアウトは、 GetPageRect および GetPrintRect によって制御されます。 通常、この呼び出しの後に、出力を生成する CRichEditCtrl::D isplayBand の呼び出しが続きます。

余白は論理ページではなく、物理ページに対して相対的であることに注意してください。 したがって、多くのプリンターにはページ上に印刷できない領域があるため、余白が 0 の場合、テキストがクリップされることがよくあります。 テキストのクリッピングを回避するには、 SetMargins を呼び出し、印刷前に適切な余白を設定する必要があります。

CRichEditView::QueryAcceptData

オブジェクトをリッチ エディットに貼り付けるためにフレームワークによって呼び出されます。

virtual HRESULT QueryAcceptData(
    LPDATAOBJECT lpdataobj,
    CLIPFORMAT* lpcfFormat,
    DWORD dwReco,
    BOOL bReally,
    HGLOBAL hMetaFile);

パラメーター

lpdataobj
クエリを実行する IDataObject へのポインター。

lpcfFormat
許容されるデータ形式へのポインター。

dwReco
未使用。

bReally
貼り付け操作を続行するかどうかを示します。

hMetaFile
アイテムのアイコンの描画に使用されるメタファイルのハンドル。

戻り値

操作の成功を報告する HRESULT 値。

解説

派生ドキュメント クラス内のさまざまな COM 項目の編成を処理するには、この関数をオーバーライドします。 これは、高度なオーバーライドが可能です。

HRESULT とIDataObjectの詳細については、Windows SDK の「 COM エラー コードの構造および IDataObject を参照してください。

// This code fragment is taken from the Wordpad sample.
HRESULT CMyRichEditView::QueryAcceptData(LPDATAOBJECT lpdataobj,
   CLIPFORMAT* lpcfFormat, DWORD dwReco, BOOL bReally, HGLOBAL hMetaFile)
{
   if (bReally && *lpcfFormat == 0 && (m_nPasteType == 0))
   {
      COleDataObject dataobj;
      dataobj.Attach(lpdataobj, FALSE);
      if (!dataobj.IsDataAvailable(cfRTO)) // native avail, let 
                                           // richedit do as it wants
      {
         if (dataobj.IsDataAvailable(cfEmbeddedObject))
         {
            if (PasteNative(lpdataobj)) // See WordPad sample for info
                                        // on PasteNative
               return S_FALSE;
         }
      }
   }
   return CRichEditView::QueryAcceptData(lpdataobj, lpcfFormat, dwReco,
      bReally, hMetaFile);
}

CRichEditView::SetCharFormat

この CRichEditView オブジェクト内の新しいテキストの文字書式属性を設定するには、この関数を呼び出します。

void SetCharFormat(CHARFORMAT2 cf);

パラメーター

cf
CHARFORMAT2 新しい既定の文字書式設定属性を含む構造体です。

解説

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

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

void CMyRichEditView::OnCharUnderline()
{
   CHARFORMAT2 cf;
   cf = GetCharFormatSelection();

   if (!(cf.dwMask & CFM_UNDERLINE) || !(cf.dwEffects & CFE_UNDERLINE))
      cf.dwEffects = CFE_UNDERLINE;
   else
      cf.dwEffects = 0;

   cf.dwMask = CFM_UNDERLINE;
   SetCharFormat(cf);
}

CRichEditView::SetMargins

この機能を呼び出して、このリッチ エディット ビューの印刷余白を設定します。

void SetMargins(const CRect& rectMargin);

パラメーター

rectMargin
印刷用の新しい余白の値 (MM_TWIPS単位)。

解説

m_nWordWrapWrapToTargetDeviceされている場合は、この関数を使用して印刷特性を調整した後WrapChanged を呼び出す必要があります。

PrintPageで使用される余白は、論理ページではなく、物理ページに対して相対的であることに注意してください。 したがって、多くのプリンターにはページ上に印刷できない領域があるため、余白が 0 の場合、テキストがクリップされることがよくあります。 テキストをクリッピングしないようにするには、 SetMargins を呼び出して、印刷前に適切なプリンター余白を設定する必要があります。

CRichEditView::GetPaperSize の例を参照してください。

CRichEditView::SetPaperSize

この関数を呼び出して、このリッチ エディット ビューを印刷するための用紙サイズを設定します。

void SetPaperSize(CSize sizePaper);

パラメーター

sizePaper
印刷用の新しい用紙サイズ値 (MM_TWIPS単位)。

解説

m_nWordWrapWrapToTargetDeviceされている場合は、この関数を使用して印刷特性を調整した後WrapChanged を呼び出す必要があります。

BOOL CMyRichEditView::OnPreparePrinting(CPrintInfo* pInfo)
{
   // Set the printing margins (720 twips = 1/2 inch).
   SetMargins(CRect(720, 720, 720, 720));

   // Change the paper orientation to landscape mode
   // See the example for CWinApp::GetPrinterDeviceDefaults
   ((CMyWinApp*)AfxGetApp())->SetLandscapeMode();

   // Change the paper size in the CRichEditView to 
   // reflect landscape mode
   CSize csPaper = GetPaperSize();
   int temp;
   temp = csPaper.cx; csPaper.cx = csPaper.cy; csPaper.cy = temp;
   SetPaperSize(csPaper);

   return DoPreparePrinting(pInfo);
}

CRichEditView::SetParaFormat

この関数を呼び出して、この CRichEditView オブジェクトの現在の選択範囲の段落書式属性を設定します。

BOOL SetParaFormat(PARAFORMAT2& pf);

パラメーター

/pf
PARAFORMAT2 新しい既定の段落書式属性を含む構造体です。

戻り値

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

解説

この関数によって変更されるのは、pfdwMask メンバーによって指定された属性だけです。

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

void CMyRichEditView::AddBullets()
{
   PARAFORMAT2 pf;

   pf.cbSize = sizeof(PARAFORMAT2);
   pf.dwMask = PFM_NUMBERING | PFM_OFFSET;
   pf.wNumbering = PFN_BULLET;
   pf.dxOffset = 10;

   VERIFY(SetParaFormat(pf));
}

CRichEditView::TextNotFound

この関数を呼び出して、 CRichEditView コントロールの内部検索状態 FindTextの呼び出しに失敗した後にリセットします。

void TextNotFound(LPCTSTR lpszFind);

パラメーター

lpszFind
見つからなかったテキスト文字列が含まれています。

解説

コントロールの内部検索状態が正しくリセットされるように、 FindText の呼び出しが失敗した直後に、このメソッドを呼び出することをお勧めします。

lpszFind パラメーターには、FindText に指定された文字列と同じ内容を含める必要があります。 内部検索状態をリセットした後、このメソッドは指定された検索文字列を使用して OnTextNotFound メソッドを呼び出します。

CRichEditView::FindText の例を参照してください。

CRichEditView::WrapChanged

印刷特性 ( SetMargins または SetPaperSize) が変更されたときに、この関数を呼び出します。

virtual void WrapChanged();

解説

この関数をオーバーライドして、リッチエディット ビューが m_nWordWrap または印刷特性 ( OnPrinterChanged) の変更に応答する方法を変更します。

void CMyRichEditView::OnInitialUpdate()
{
   CRichEditView::OnInitialUpdate();

   // Turn on the horizontal scroll bar
   m_nWordWrap = WrapNone;
   WrapChanged();
}

関連項目

MFC サンプル ワードパッド
CCtrlView クラス
階層図
CRichEditDoc クラス
CRichEditCntrItem クラス