共用方式為


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 擷取這個豐富編輯檢視中某個範圍的剪貼簿物件。
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

需求

標頭: afxrich.h

CRichEditView::AdjustDialogPosition

呼叫此函式來移動指定的對話框,使其不會遮蔽目前的選取範圍。

void AdjustDialogPosition(CDialog* pDlg);

參數

pDlg
指向 CDialog 物件的指標。

CRichEditView::CanPaste

呼叫此函式,以判斷剪貼簿是否包含可貼到這個豐富編輯檢視中的資訊。

BOOL CanPaste() const;

傳回值

如果剪貼簿包含可接受此豐富編輯檢視格式的數據,則為非零;否則為 0。

CRichEditView::CRichEditView

呼叫此函式以建立 CRichEditView 物件。

CRichEditView();

CRichEditView::D oPaste

呼叫此函式,將 OLE 專案貼到這個豐富的編輯檔/檢視中。

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

參數

dataobj
包含要貼上之數據的 COleDataObject

cf
所需的剪貼簿格式。

hMetaPict
表示要貼上之專案的元檔。

備註

架構會呼叫此函式作為 QueryAcceptData 預設實作的一部分。

此函式會根據 [貼上特殊] 處理程序的結果來決定貼上的類型。 如果 cf 為 0,新專案會使用目前的圖示表示法。 如果 cf 不是零值,且 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。

備註

此函式會在尋找作業期間顯示等候數據指標。

範例

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。

範例

請參閱 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 結構的指標,指定要複製到 lplpdataobj指定之數據物件的字元範圍(和 OLE 專案)。

dwReco
剪貼簿作業旗標。 這可以是下列其中一個值。

  • RECO_COPY複製到剪貼簿。

  • RECO_CUT剪下剪貼簿。

  • RECO_DRAG拖曳作業(拖放)。

  • RECO_DROP拖放作業(拖放)。

  • RECO_PASTE從剪貼簿貼上。

lpRichDataObj
IDataObject 物件的指標,其中包含豐富編輯控件的剪貼簿數據(IRichEditOle::GetClipboardData)。

lplpdataobj
指標變數的指標,該變數會接收代表 lpchrg 參數中所指定範圍的 物件位址IDataObject。 如果傳回錯誤,則會忽略 lplpdataobj 的值

傳回值

報告作業成功的 HRESULT 值。 如需 HRESULT 的詳細資訊,請參閱 Windows SDK 中的 COM 錯誤碼 結構。

備註

如果傳回值指出成功,IRichEditOleCallback::GetClipboardData則會傳回 IDataObject lplpdataobj存取的 ,否則會傳回 lpRichDataObj存取的 。 覆寫此函式以提供您自己的剪貼簿數據。 此函式的預設實作會傳回E_NOTIMPL。

這是可覆寫的進階。

如需詳細資訊,請參閱 IRichEditOle::GetClipboardDataIRichEditOleCallback::GetClipboardData 和 Windows SDK 中的 CHARRANGE,以及 Windows SDK 中的 IDataObject

CRichEditView::GetContextMenu

架構會呼叫此函式作為IRichEditOleCallback::GetContextMenu 處理的一部分。

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

參數

seltyp
選取類型。 選取類型值會在一節中說明。

lpoleobj
OLEOBJECT如果選取範圍包含一或多個 OLE 專案,則為指定第一個選取之 OLE 對象的結構指標。 如果選取範圍不包含任何專案, 則 lpoleobj 為 NULL。 結構 OLEOBJECT 會保存 OLE 物件 v 資料表的指標。

lpchrg
包含目前選取範圍的 CHARRANGE 結構的指標。

傳回值

操作功能表的句柄。

備註

此函式是滑鼠右鍵向下處理的一般部分。

選取類型可以是下列旗標的任何組合:

  • SEL_EMPTY 指出沒有目前的選取範圍。

  • SEL_TEXT 指出目前的選取範圍包含文字。

  • SEL_OBJECT 指出目前的選取範圍至少包含一個 OLE 專案。

  • SEL_MULTICHAR 指出目前的選取範圍包含一個以上的文字字元。

  • SEL_MULTIOBJECT 指出目前的選取範圍包含一個以上的 OLE 物件。

默認實作會傳回 NULL。 這是可覆寫的進階。

如需詳細資訊,請參閱 Windows SDK 中的 IRichEditOleCallback::GetContextMenuCHARRANGE

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 中的EM_GETPARAFORMAT 訊息和 PARAFORMAT2 結構。

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 旗標成員中列出的一或多個值。

uCodePage
翻譯的代碼頁(ANSI 代碼頁的CP_ACP,Unicode 為 1200)。

傳回值

編輯控制件中的字元數或位元組數。 如果在 dwFlags設定不相容的旗標,這個成員函式會傳回E_INVALIDARG。

備註

GetTextLengthEx 提供判斷文字長度的其他方式。 它支援 Rich Edit 2.0 功能。 如需詳細資訊,請參閱 關於 Windows SDK 中的 Rich Edit 控制件

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 專案的剪貼簿格式,也就是文字、RTF 或 RTF。

static BOOL AFX_CDECL IsRichEditFormat(CLIPFORMAT cf);

參數

cf
感興趣的剪貼簿格式。

傳回值

如果 cf 是豐富的編輯或文字剪貼簿格式,則為非零。

CRichEditView::IsSelected

呼叫此函式,以判斷指定的 OLE 專案目前是否在此檢視中選取。

virtual BOOL IsSelected(const CObject* pDocItem) const;

參數

pDocItem
檢視中物件的指標。

傳回值

如果選取物件,則為非零;否則為 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
要切換之字元格式設定效果的所需清單。

備註

此函式的每個呼叫都會切換目前選取範圍的指定格式效果。

如需 dwMaskdwEffect 參數及其潛在值的詳細資訊,請參閱 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,向上。

bCase
指出搜尋是否區分大小寫。

bWord
指出搜尋是否只比對整字。

備註

呼叫此函式以在內 CRichEditView尋找文字。 覆寫此函式以改變衍生檢視類別的搜尋特性。

CRichEditView::OnInitialUpdate

在檢視第一次附加至文件之後,由架構呼叫,但在最初顯示檢視之前。

virtual void OnInitialUpdate();

備註

此函式的預設實作會呼叫沒有提示資訊的 CView::OnUpdate 成員函式(也就是說,針對 lHint 參數使用預設值 0,pHint 參數為 NULL)。 覆寫此函式,以執行需要文件相關信息的任何一次性初始化。 例如,如果您的應用程式有固定大小的檔,您可以使用此函式,根據檔案大小初始化檢視的捲動限制。 如果您的應用程式支援可變大小的檔案,請使用 OnUpdate 來更新每次檔案變更時的捲動限制。

範例

請參閱 CRichEditView::m_nWordWrap的範例

CRichEditView::OnPasteNativeObject

使用此函式從內嵌專案載入原生數據。

virtual BOOL OnPasteNativeObject(LPSTORAGE lpStg);

參數

lpStg
IStorage 物件的指標。

傳回值

如果成功,則為非零;否則為 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,向上。

bCase
指出搜尋是否區分大小寫。

bWord
指出搜尋是否必須選取整字。

lpszReplace
取代文字。

備註

呼叫此函式,以另一個字串取代一些指定文字的出現次數。 覆寫此函式以改變此檢視的搜尋特性。

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
表示字元格式設定效果。

備註

遮罩 dwMask 會指定要檢查的字元格式設定屬性。 旗標 dwEffect 會列出要設定/清除的字元格式屬性。

如需 dwMaskdwEffect 參數及其潛在值的詳細資訊,請參閱 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
定義輸出區域的 RECTCRect

nIndexStart
要格式化之第一個字元之以零起始的索引。

nIndexStop
要格式化之最後一個字元之以零起始的索引。

bOutput
指出是否應該轉譯文字。 如果為 FALSE,則只會測量文字。

傳回值

符合輸出區域之最後一個字元的索引加上一個。

備註

一般而言,此呼叫後面接著對 CRichEditCtrl::D isplayBand 的呼叫,以產生輸出。

範例

請參閱 CRichEditView::GetPaperSize 的範例

CRichEditView::P rintPage

呼叫此函式,以在 pDC指定的輸出裝置的豐富編輯控件中格式化文字範圍。

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

參數

pDC
頁面輸出之裝置內容的指標。

nIndexStart
要格式化之第一個字元之以零起始的索引。

nIndexStop
要格式化之最後一個字元之以零起始的索引。

傳回值

符合頁面上最後一個字元的索引加上一個字元。

備註

每個頁面的配置是由 GetPageRectGetPrintRect 所控制。 一般而言,此呼叫後面接著對 CRichEditCtrl::D isplayBand 的呼叫,以產生輸出。

請注意,邊界是相對於實體頁面,而不是邏輯頁面。 因此,零的邊界通常會裁剪文字,因為許多印表機在頁面上有無法列印的區域。 若要避免裁剪文字,您應該先呼叫 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結構,其中包含新的預設字元格式設定屬性。

備註

只有 cf 成員dwMask指定的屬性會由此函式變更。

如需詳細資訊,請參閱 Windows SDK 中的EM_SETCHARFORMAT 訊息和 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::SetMargins

呼叫此函式來設定這個豐富編輯檢視的列印邊界。

void SetMargins(const CRect& rectMargin);

參數

rectMargin
列印的新邊界值,以MM_TWIPS為單位。

備註

如果 m_nWordWrapWrapToTargetDevice,您應該在使用此函式來調整列印特性之後呼叫 WrapChanged

請注意,PrintPage 所使用的邊界是相對於實體頁面,而不是邏輯頁面。 因此,零的邊界通常會裁剪文字,因為許多印表機在頁面上有無法列印的區域。 若要避免裁剪您的文字,您應該在列印之前呼叫 使用 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。

備註

此函式只會變更 pf 成員dwMask指定的屬性。

如需詳細資訊,請參閱 Windows SDK 中的EM_SETPARAFORMAT 訊息和 PARAFORMAT2 結構。

範例

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

呼叫此函式,以在呼叫 FindText 失敗之後重設 CRichEditView 控件的內部搜尋狀態

void TextNotFound(LPCTSTR lpszFind);

參數

lpszFind
包含找不到的文字字串。

備註

建議您在呼叫 FindText 失敗之後立即呼叫這個方法,以便正確重設控件的內部搜尋狀態。

lpszFind 參數應該包含與提供給 FindText 之字串相同的內容。 重設內部搜尋狀態之後,這個方法會使用提供的搜尋字串呼叫 OnTextNotFound 方法。

範例

請參閱 CRichEditView::FindText範例。

CRichEditView::WrapChanged

當列印特性變更時呼叫此函式 ( SetMarginsSetPaperSize)。

virtual void WrapChanged();

備註

覆寫此函式以修改豐富編輯檢視回應m_nWordWrap或列印特性 (OnPrinterChanged) 變更的方式。

範例

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

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

另請參閱

MFC 範例 WORDPAD
CCtrlView 類別
階層架構圖表
CRichEditDoc 類別
CRichEditCntrItem 類別