CRichEditCtrl
類別
提供 Windows Rich Edit 控制項的功能。
語法
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 |
設定豐富編輯控件的自動換行和斷詞選項。 此訊息僅適用於作業系統的亞洲語言版本。 |
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
一次。 呼叫這個函式的一般位置是在程式的 InitInstance
成員函式中。 只需在第一次顯示對話方塊時呼叫它一次。 如果您使用 AfxInitRichEdit
,不需要呼叫 CRichEditView
。
如需使用 CRichEditCtrl
的詳細資訊,請參閱:
如需在 MFC 應用程式中使用豐富編輯控制元件的範例,請參閱 WORDPAD 範例應用程式。
繼承階層架構
CRichEditCtrl
需求
標頭: afxcmn.h
CRichEditCtrl::CanPaste
判斷豐富的編輯控制項是否可以貼上指定的剪貼簿格式。
BOOL CanPaste(UINT nFormat = 0) const;
參數
nFormat
要查詢的剪貼簿數據格式。 這個參數可以是其中一個預先定義的剪貼簿格式或 所 RegisterClipboardFormat
傳回的值。
傳回值
如果可以貼上剪貼簿格式,則為非零;否則為 0。
備註
如果 nFormat
為 0, CanPaste
將會嘗試剪貼簿上目前的任何格式。
如需詳細資訊,請參閱 EM_CANPASTE
Windows SDK 中的訊息和 RegisterClipboardFormat
函式。
範例
// Paste the clipboard data if possible.
if (m_myRichEditCtrl.CanPaste())
{
m_myRichEditCtrl.Paste();
}
CRichEditCtrl::CanRedo
判斷重做佇列是否包含任何動作。
BOOL CanRedo() const;
傳回值
如果重做佇列包含動作,則為非零,否則為 0。
備註
若要探索重做佇列中作業的名稱,請呼叫 CRichEditCtrl::GetRedoName
。 若要重做最新的復原作業,請呼叫 Redo
。
如需詳細資訊,請參閱 EM_CANREDO
Windows SDK 中的 。
CRichEditCtrl::CanUndo
判斷是否可以復原最後一個編輯作業。
BOOL CanUndo() const;
傳回值
如果最後一個編輯作業可由成員函式的呼叫 Undo
復原,則為非零;如果無法復原,則為0。
備註
如需詳細資訊,請參閱 EM_CANUNDO
Windows SDK 中的 。
範例
// Undo the last operation, if possible.
if (m_myRichEditCtrl.CanUndo())
m_myRichEditCtrl.Undo();
CRichEditCtrl::CharFromPos
擷取 參數 pt
所指定之點的字元相關信息。
int CharFromPos(CPoint pt) const;
參數
pt
CPoint
物件,包含指定點的座標。
傳回值
最接近指定點之字元之以零起始的字元索引。 如果指定的點超出 控件的最後一個字元,則傳回值會指出控件中的最後一個字元。
備註
此成員函式適用於豐富的編輯控制件。 若要取得編輯控制件的資訊,請呼叫 CEdit::CharFromPos
。
如需詳細資訊,請參閱 EM_CHARFROMPOS
Windows SDK 中的 。
CRichEditCtrl::Clear
刪除目前選取範圍(如果有的話)在豐富的編輯控制項中。
void Clear();
備註
藉由呼叫Undo
成員函式,即可復原 所Clear
執行的刪除作業。
若要刪除目前的選取範圍,並將已刪除的內容放在剪貼簿上,請呼叫 Cut
成員函式。
如需詳細資訊,請參閱 WM_CLEAR
Windows SDK 中的 。
範例
// Delete all of the text.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Clear();
CRichEditCtrl::Copy
將豐富編輯控制項中的目前選取範圍(如果有的話)複製到剪貼簿。
void Copy();
備註
如需詳細資訊,請參閱 WM_COPY
Windows SDK 中的 。
範例
// 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
指定編輯控制件的樣式。 套用下方<備註>一節中列出的視窗樣式組合,以及編輯 Windows SDK 中所述的控件樣式。
rect
指定編輯控制元件的大小和位置。 可以是 CRect
對象或 RECT
結構。
pParentWnd
指定編輯控制件的父視窗 (通常是 )。CDialog
它不得為 NULL
。
nID
指定編輯控制件的識別碼。
傳回值
如果初始化成功,則為非零;否則為 0。
備註
您會在兩個步驟中建構 CRichEditCtrl
物件。 首先,呼叫 建 CRichEditCtrl
構函式,然後呼叫 Create
,這會建立 Windows 編輯控件並將它附加至 CRichEditCtrl
物件。
當您使用此函式建立豐富的編輯控制項時,必須先載入必要的通用控制項連結庫。 若要載入連結庫,請呼叫全域函式 AfxInitRichEdit
,進而初始化通用控件連結庫。 您只需要在程式中呼叫 AfxInitRichEdit
一次。
執行時 Create
,Windows 會將 WM_NCCREATE
、 WM_NCCALCSIZE
、 WM_CREATE
和 WM_GETMINMAXINFO
訊息傳送至編輯控件。
基類中的 CWnd
、 OnCreate
OnNcCalcSize
和 OnGetMinMaxInfo
成員函式預設OnNcCreate
會處理這些訊息。 若要擴充預設訊息處理,請從 CRichEditCtrl
衍生類別、將訊息對應新增至新類別,並覆寫上述訊息處理程式成員函式。 例如,覆寫 OnCreate
,以執行新類別所需的初始化。
將下列 視窗樣式 套用至編輯控制項。
WS_CHILD
總是。WS_VISIBLE
通常。WS_DISABLED
很少。WS_GROUP
若要將控件分組。WS_TABSTOP
若要在定位順序中包含編輯控制件。
如您視窗樣式的詳細資訊,請參閱 CreateWindow
Windows SDK 中的 。
範例
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 樣式的清單,請參閱 dwExStyle
Windows SDK 中的 參數 CreateWindowEx
。
dwStyle
指定編輯控制件的樣式。 套用 Windows SDK 中所述的Create
一節中列出的視窗樣式組合,並編輯控件樣式。
rect
結構的參考 RECT
,描述要建立之視窗的大小和位置,在的用戶端座標中 pParentWnd
。
pParentWnd
控件父系之視窗的指標。
nID
控制件的子視窗識別碼。
傳回值
如果成功則為非零;否則為 0。
備註
使用 CreateEx
而不是 Create
套用延伸的 Windows 樣式,由 Windows 擴充樣式前置詞 WS_EX_
所指定。
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();
備註
藉由呼叫Undo
成員函式,即可復原 所Cut
執行的刪除作業。
若要刪除目前的選取範圍,而不將已刪除的文字放入剪貼簿中,請呼叫 Clear
成員函式。
如需詳細資訊,請參閱 WM_CUT
Windows SDK 中的 。
範例
// Delete all of the text and copy it to the clipboard.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Cut();
CRichEditCtrl::DisplayBand
顯示 RTF 控制件內容的一部分(文字和 OLE 專案),如先前的格式。FormatRange
BOOL DisplayBand(LPRECT pDisplayRect);
參數
pDisplayRect
RECT
或 CRect
物件的指標,指定要顯示文字之裝置的區域。
傳回值
如果格式化文字的顯示成功,則為非零,否則為 0。
備註
文字和 OLE 專案會裁剪到指標 pDisplayRect
所指定的區域。
如需詳細資訊,請參閱 EM_DISPLAYBAND
Windows SDK 中的 。
範例
請參閱 CRichEditCtrl::FormatRange
的範例。
CRichEditCtrl::EmptyUndoBuffer
重設這個豐富編輯控件的復原旗標(清除)。
void EmptyUndoBuffer();
備註
控件現在將無法復原最後一個編輯作業。 每當可以復原豐富編輯控件內的作業時,就會設定復原旗標。
每當您呼叫 CWnd
成員函 SetWindowText
式 時,就會自動清除復原旗標。
如需詳細資訊,請參閱 EM_EMPTYUNDOBUFFER
Windows SDK 中的 。
範例
// 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
如需可能值的清單,請參閱 wParam
EM_FINDTEXTEXT
Windows SDK 中的 。
pFindText
結構的 FINDTEXTEX
指標,提供搜尋的參數,並傳回找到相符專案的範圍。
傳回值
下一個比對以零起始的字元位置;- 1 如果沒有相符專案,則為 1。
備註
您可以在 結構內的 FINDTEXTEX
結構中CHARRANGE
設定適當的範圍參數,以向上或向下搜尋。
如需詳細資訊,請參閱 EM_FINDTEXTEX
Windows SDK 中的訊息和 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
要從中開始之以零起始的字元位置。
傳回值
根據 參數 nCode
。 如需詳細資訊,請參閱 EM_FINDWORDBREAK
Windows SDK 中的 。
備註
您可以使用這個成員函式來擷取指定位置上字元的相關信息。
CRichEditCtrl::FormatRange
將特定裝置的豐富編輯控制件中的文字範圍格式化。
long FormatRange(
FORMATRANGE* pfr,
BOOL bDisplay = TRUE);
參數
pfr
FORMATRANGE
結構的指標,其中包含輸出裝置的相關信息。 NULL
表示可以釋放豐富編輯控件內的快取資訊。
bDisplay
指出是否應該轉譯文字。 如果 FALSE
為 ,則只會測量文字。
傳回值
符合區域之最後一個字元的索引加上一個。
備註
一般而言,此呼叫後面接著呼叫 DisplayBand
。
如需詳細資訊,請參閱 EM_FORMATRANGE
Windows SDK 中的訊息和 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
以零起始的字元索引。
傳回值
所指定 lChar
字元左上角的位置。
備註
字元是藉由提供其以零起始的索引值來指定。 如果 lChar
大於這個 CRichEditCtrl
物件中最後一個字元的索引,則傳回值會指定字元位置的座標,而剛超過這個 CRichEditCtrl
物件中的最後一個字元。
如需詳細資訊,請參閱 EM_POSFROMCHAR
Windows SDK 中的 。
CRichEditCtrl::GetDefaultCharFormat
取得這個 CRichEditCtrl
物件的預設字元格式屬性。
DWORD GetDefaultCharFormat(CHARFORMAT& cf) const; DWORD GetDefaultCharFormat(CHARFORMAT2& cf) const;
參數
cf
在第一個 CHARFORMAT
版本中,結構指標會持有預設字元格式屬性。
在第二個 CHARFORMAT2
版本中,結構的指標,這是結構的 Rich Edit 2.0 延伸模組 CHARFORMAT
,並包含預設字元格式設定屬性。
傳回值
dwMask
的數據成員cf
。 它指定了預設字元格式屬性。
備註
如需詳細資訊,請參閱 EM_GETCHARFORMAT
Windows SDK 中的訊息和 CHARFORMAT
和 CHARFORMAT2
結構。
範例
請參閱 SetDefaultCharFormat
的範例。
CRichEditCtrl::GetEventMask
取得這個 CRichEditCtrl
物件的事件遮罩。
long GetEventMask() const;
傳回值
這個 CRichEditCtrl
物件的事件遮罩。
備註
事件遮罩會指定物件傳送至其父視窗的通知訊息 CRichEditCtrl
。
如需詳細資訊,請參閱 EM_GETEVENTMASK
Windows SDK 中的 。
範例
請參閱 CRichEditCtrl::SetEventMask
的範例。
CRichEditCtrl::GetFirstVisibleLine
決定這個 CRichEditCtrl
物件中最上層可見的一行。
int GetFirstVisibleLine() const;
傳回值
這個 CRichEditCtrl
物件中最上層可見行的以零起始的索引。
備註
如需詳細資訊,請參閱 EM_GETFIRSTVISIBLELINE
Windows SDK 中的 。
範例
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
IRichEditOle
存取這個CRichEditCtrl
物件的介面。
IRichEditOle* GetIRichEditOle() const;
傳回值
介面的 IRichEditOle
指標,這個介面可用來存取此 CRichEditCtrl
物件的 OLE 功能; NULL
如果無法存取介面,則為 。
備註
使用此介面來存取此 CRichEditCtrl
物件的 OLE 功能。
如需詳細資訊,請參閱 EM_GETOLEINTERFACE
Windows SDK 中的訊息和 IRichEditOle
介面。
CRichEditCtrl::GetLimitText
取得這個 CRichEditCtrl
物件的文字限制。
long GetLimitText() const;
傳回值
這個 CRichEditCtrl
物件的目前文字限制,以位元組為單位。
備註
文字限制是文字數量上限,以位元組為單位,豐富的編輯控件可以接受。
如需詳細資訊,請參閱 EM_GETLIMITTEXT
Windows SDK 中的 。
範例
// 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
要擷取之行的以零起始的索引。
lpszBuffer
指向要接收文字的緩衝區。 緩衝區的第一個字必須指定可以複製到緩衝區的最大位元元組數目。
nMaxLength
可以複製到 lpszBuffer
的最大字元數。 第二種形式 GetLine
會將此值放入 所 lpszBuffer
指定緩衝區的第一個字中。
傳回值
複製到 lpszBuffer
的字元數。
備註
複製的行不包含終止的 Null 字元。
注意
由於緩衝區的第一個字會儲存要複製的字元數,因此請確定您的緩衝區長度至少為 4 個字節。
如需詳細資訊,請參閱 EM_GETLINE
Windows SDK 中的 。
範例
請參閱 GetLineCount
的範例。
CRichEditCtrl::GetLineCount
擷取 物件中的 CRichEditCtrl
行數。
int GetLineCount() const;
傳回值
這個 CRichEditCtrl
物件中的行數。
備註
如需詳細資訊,請參閱 EM_GETLINECOUNT
Windows SDK 中的 。
範例
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。
備註
Windows 會維護內部旗標,指出豐富編輯控件的內容是否已變更。 第一次建立編輯控件時,會清除此旗標,也可以藉由呼叫 SetModify
成員函式來清除。
如需詳細資訊,請參閱 EM_GETMODIFY
Windows SDK 中的 。
範例
// Reset the modified state only if the text has been modified.
if (m_myRichEditCtrl.GetModify())
m_myRichEditCtrl.SetModify(FALSE);
CRichEditCtrl::GetOptions
擷取目前為豐富編輯控制項設定的選項。
UINT GetOptions() const;
傳回值
目前選項旗標值的組合。 如需這些值的清單,請參閱 fOptions
訊息中的 EM_SETOPTIONS
參數,如 Windows SDK 中所述。
CRichEditCtrl::GetParaFormat
取得目前選取範圍的段落格式設定屬性。
DWORD GetParaFormat(PARAFORMAT& pf) const; DWORD GetParaFormat(PARAFORMAT2& pf) const;
參數
pf
在第一個 PARAFORMAT
版本中,結構指標,用來保存目前選取範圍的段落格式設定屬性。
在第二個 PARAFORMAT2
版本中,結構的指標,這是結構的 Rich Edit 2.0 延伸模組 PARAFORMAT
,並包含預設字元格式設定屬性。
傳回值
dwMask
的數據成員pf
。 它會指定目前選取範圍中一致的段落格式設定屬性。
備註
如果選取多個段落, pf
則會收到第一個選取段落的屬性。 傳回值會指定整個選取範圍中的屬性一致。
如需詳細資訊,請參閱 EM_GETPARAFORMAT
Windows SDK 中的訊息和 PARAFORMAT
和 PARAFORMAT2
結構。
範例
請參閱 CRichEditCtrl::SetParaFormat
的範例。
CRichEditCtrl::GetPunctuation
取得豐富編輯控制件中的目前標點符號字元。
BOOL GetPunctuation(
UINT fType,
PUNCTUATION* lpPunc) const;
參數
fType
標點符號類型旗標,如 Windows SDK 中的 參數EM_GETPUNCTUATION
中所述fType
。
lpPunc
結構的指標 PUNCTUATION
,如 Windows SDK 中所述。
傳回值
如果作業成功,則為非零,否則為 0。
備註
此成員函式僅適用於作業系統的亞洲語言版本。
CRichEditCtrl::GetRect
擷取這個 CRichEditCtrl
物件的格式化矩形。
void GetRect(LPRECT lpRect) const;
參數
lpRect
CRect
或的指標 RECT
,用來接收這個 CRichEditCtrl
物件的格式化矩形。
備註
格式化矩形是文字的周框。 這個值與物件的大小 CRichEditCtrl
無關。
如需詳細資訊,請參閱 EM_GETRECT
Windows SDK 中的 。
範例
請參閱 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
目前選取範圍中第一個字元之以零起始的索引。
nEndChar
目前選取範圍中最後一個字元之以零起始的索引。
備註
此函式的兩種形式提供替代方式來取得選取範圍的界限。 這些表單的簡短描述如下:
GetSel(
cr
) 此窗體會CHARRANGE
使用 結構搭配其cpMin
和cpMax
成員來傳回界限。GetSel(
nStartChar
,nEndChar
) 此窗體會傳回 參數nStartChar
和nEndChar
中的界限。
如果開頭 (或nStartChar
) 為 0,而結尾 (cpMin
cpMax
或nEndChar
) 為 - 1,則選取範圍會包含所有專案。
如需詳細資訊,請參閱 EM_EXGETSEL
Windows SDK 中的訊息和 CHARRANGE
結構。
範例
// 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
版本中,結構的指標,用來接收目前選取範圍的字元格式屬性。
在第二個 CHARFORMAT2
版本中,結構的指標,這是結構的 Rich Edit 2.0 延伸模組 CHARFORMAT
,以接收目前選取範圍的字元格式屬性。
傳回值
dwMask
的數據成員cf
。 它會指定目前選取範圍中一致的字元格式屬性。
備註
參數 cf
會接收目前選取範圍中第一個字元的屬性。 傳回值會指定整個選取範圍中的屬性一致。
如需詳細資訊,請參閱 EM_GETCHARFORMAT
Windows SDK 中的訊息和 CHARFORMAT
和 CHARFORMAT2
結構。
範例
請參閱 SetSelectionCharFormat
的範例。
CRichEditCtrl::GetSelectionType
決定這個 CRichEditCtrl
物件中的選取類型。
WORD GetSelectionType() const;
傳回值
指出目前選取範圍內容的旗標。 下列旗標的組合:
SEL_EMPTY
表示沒有目前的選取範圍。SEL_TEXT
表示目前的選取範圍包含文字。SEL_OBJECT
表示目前的選取範圍至少包含一個 OLE 專案。SEL_MULTICHAR
表示目前的選取範圍包含一個字元以上的文字。SEL_MULTIOBJECT
表示目前的選取範圍包含一個以上的 OLE 物件。
備註
如需詳細資訊,請參閱 EM_SELECTIONTYPE
Windows SDK 中的 。
範例
// 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)
複製到lpBuf
的字元數,不包括 Null 終止。GetSelText( )
包含目前選取範圍的字串。
備註
如果您使用第一個窗體, GetSelText(lpBuf)
您必須確定緩衝區夠大,才能接收的文字。 呼叫 GetSel
以判斷目前選取範圍中的字元數。
如需詳細資訊,請參閱 EM_GETSELTEXT
Windows SDK 中的 。
範例
請參閱 CRichEditCtrl::GetSelectionType
的範例。
CRichEditCtrl::GetTextLength
擷取此 CRichEditCtrl
物件中文字的長度,以字元為單位,不包含終止的 Null 字元。
long GetTextLength() const;
傳回值
這個 CRichEditCtrl
物件中的文字長度。
備註
如需詳細資訊,請參閱 WM_GETTEXTLENGTH
Windows SDK 中的 。
範例
// Limit the rich edit controls text to the number of
// characters currently in it.
m_myRichEditCtrl.LimitText(m_myRichEditCtrl.GetTextLength());
CRichEditCtrl::GetTextLengthEx
計算 RTF 控制件中文字的長度。
long GetTextLengthEx(
DWORD dwFlags,
UINT uCodePage = -1) const;
參數
dwFlags
值,指定要用於判斷文字長度的方法。 這個成員可以是 Windows SDK 中所述之旗標成員 GETTEXTLENGTHEX
中所列的一或多個值。
uCodePage
翻譯的代碼頁(CP_ACP
適用於 ANSI 代碼頁,Unicode 為 1200)。
傳回值
編輯控制件中的字元數或位元組數。 如果在 中 dwFlags
設定不相容的旗標,這個成員函式會傳 E_INVALIDARG
回 。
備註
GetTextLengthEx
提供判斷文字長度的其他方式。 它支援 Rich Edit 2.0 功能。 如需詳細資訊,請參閱 Windows SDK 中的關於 Rich Edit 控制件 。
CRichEditCtrl::GetTextMode
擷取豐富編輯控件的目前文字模式和復原層級。
UINT GetTextMode() const;
傳回值
列舉 TEXTMODE
類型的一組位旗標,如 Windows SDK 中所述。 旗標表示控件目前的文字模式和復原層級。
CRichEditCtrl::GetTextRange
取得指定的字元範圍。
int GetTextRange(
int nFirst,
int nLast,
CString& refString) const;
參數
nFirst
字元位置索引緊接在範圍中的第一個字元前面。
nLast
緊接在範圍中最後一個字元後面的字元位置。
refString
將接收文字之 對象的參考 CString
。
傳回值
複製的字元數,不包括終止的 Null 字元。
備註
如需詳細資訊,請參閱 EM_GETTEXTRANGE
Windows SDK 中的 。
GetTextRange
支援 Rich Edit 2.0 功能。 如需詳細資訊,請參閱 Windows SDK 中的關於 Rich Edit 控制件 。
CRichEditCtrl::GetUndoName
擷取復原佇列中下一個可用動作的類型,如果有的話。
UNDONAMEID GetUndoName() const;
傳回值
如果復原動作位於控件的復原佇列中,會傳回 UNDONAMEID 列舉類型,GetUndoName
指出佇列中下一個動作的類型。 如果復原佇列是空的,或佇列中的復原動作為未知類型, GetUndoName
則傳回 0。
備註
可以復原或取消復原的動作類型包括輸入、刪除、拖放、剪下和貼上作業。 這項資訊對於為復原和重做作業提供擴充使用者介面的應用程式很有用,例如可以復原的動作下拉式清單框。
CRichEditCtrl::GetWordWrapMode
擷取豐富編輯控制元件的目前自動換行和斷詞選項。
UINT GetWordWrapMode() const;
傳回值
目前的自動換行和斷詞選項。 這些選項會在 Windows SDK 中 EM_SETWORDWRAPMODE
說明。
備註
此成員函式僅適用於作業系統的亞洲語言版本。
CRichEditCtrl::HideSelection
變更選取範圍的可見性。
void HideSelection(
BOOL bHide,
BOOL bPerm);
參數
bHide
指出是否應該顯示或隱藏選取範圍, TRUE
以隱藏選取範圍。
bPerm
指出選取範圍的可見度變更是否應該是永久性的。
備註
當 為 TRUE
時bPerm
,它會變更ECO_NOHIDESEL
這個CRichEditCtrl
對象的 選項。 如您您設定的簡短描述,請參閱 SetOptions
。 您可以使用此函式來設定此 CRichEditCtrl
物件的所有選項。
如需詳細資訊,請參閱 EM_HIDESELECTION
Windows SDK 中的 。
範例
// Show the selection and make it permanent.
m_myRichEditCtrl.HideSelection(FALSE, TRUE);
CRichEditCtrl::LimitText
限制使用者可以進入編輯控件的文字長度。
void LimitText(long nChars = 0);
參數
nChars
指定使用者可以輸入之文字的長度(以位元組為單位)。 如果此參數為0(預設值),則文字長度會設定為64K位元組。
備註
變更文字限制只會限制使用者可以輸入的文字。 它不會影響任何已經在編輯控件中的文字,也不會影響 中成員CWnd
函式複製到編輯控件SetWindowText
的文字長度。 如果應用程式使用函 SetWindowText
式將比呼叫 LimitText
中指定的更多的文字放入編輯控件,則使用者可以刪除編輯控件內的任何文字。 不過,除非刪除目前的選取範圍會導致文字低於文字限制,否則文字限制會防止使用者以新的文字取代現有的文字。
注意
對於文字限制,每個 OLE 項目都會計算為單一字元。
如需詳細資訊,請參閱 EM_EXLIMITTEXT
Windows SDK 中的 。
範例
// 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
包含編輯控件文字中所需字元之以零起始的索引值,或包含 -1。 如果 nIndex
為 -1,它會指定目前行,也就是包含插入號的行。
傳回值
包含所 nIndex
指定字元索引之行的以零起始的行號。 如果 nIndex
為 -1,則會傳回包含選取範圍第一個字元的行號。 如果沒有選取專案,則會傳回目前的行號。
備註
字元索引是豐富編輯控件開頭的字元數。 針對字元計數,OLE 項目會計算為單一字元。
如需詳細資訊,請參閱 EM_EXLINEFROMCHAR
Windows SDK 中的 。
範例
// 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,它會指定目前行,也就是包含插入號的行。
傳回值
如果指定的行號大於編輯控件中的行數,則為 或 -1 所指定 nLine
行的字元索引。
備註
字元索引是從豐富編輯控件開頭到指定行的字元數。
如需詳細資訊,請參閱 EM_LINEINDEX
Windows SDK 中的 。
範例
// 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,則會傳回目前行的長度(包含插入號的行),不包含該行內任何選取文字的長度。 針對單行編輯控件呼叫 時 LineLength
,會忽略此參數。
傳回值
當針對多行編輯控制器呼叫 時LineLength
,傳回值是 指定nLine
行的長度 (inTCHAR
) 。 它不包含行尾的歸位字元。 當針對單行編輯控制器呼叫 時 LineLength
,傳回值是編輯控制件中文字的長度 (in TCHAR
) 。 如果 nLine
大於控件中的字元數,則傳回值為零。
備註
LineIndex
使用成員函式來擷取這個CRichEditCtrl
物件內指定行號的字元索引。
如需詳細資訊,請參閱 EM_LINELENGTH
Windows SDK 中的 。
範例
請參閱 LineIndex
的範例。
CRichEditCtrl::LineScroll
捲動多行編輯控件的文字。
void LineScroll(
int nLines,
int nChars = 0);
參數
nLines
指定要垂直捲動的行數。
nChars
指定要水平捲動的字元位置數目。 如果豐富的編輯控制件具有 或 ES_CENTER
樣式,ES_RIGHT
則會忽略此值。 編輯樣式 是在 中 Create
指定。
備註
編輯控制件不會垂直捲動到編輯控制件中的最後一行文字。 如果目前的行加上 所 nLines
指定的行數超過編輯控制項中的行總數,則會調整值,讓編輯控件的最後一行捲動到編輯控件視窗頂端。
LineScroll
可以用來水平捲動超過任何一行的最後一個字元。
如需詳細資訊,請參閱 EM_LINESCROLL
Windows SDK 中的 。
範例
請參閱 GetFirstVisibleLine
的範例。
CRichEditCtrl::Paste
將數據從剪貼簿 CRichEditCtrl
插入插入點的 插入點,插入號的位置。
void Paste();
備註
只有在剪貼簿包含已辨識格式的數據時,才會插入數據。
如需詳細資訊,請參閱 WM_PASTE
Windows SDK 中的 。
範例
// 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
包含要貼上之物件之圖示檢視的元檔句柄。
備註
新材質會插入插入點,插入點的位置。
如需詳細資訊,請參閱 EM_PASTESPECIAL
Windows SDK 中的 。
範例
// Paste the data from the clipboard as text.
m_myRichEditCtrl.PasteSpecial(CF_TEXT);
CRichEditCtrl::PosFromChar
擷取編輯控件中指定字元的工作區座標。
CPoint PosFromChar(UINT nChar) const;
參數
nChar
字元以零起始的索引。
傳回值
字元的位置(x,y)。 對於單行編輯控件,Y 座標一律為零。
備註
如需詳細資訊,請參閱 EM_POSFROMCHAR
Windows SDK 中的 。
CRichEditCtrl::Redo
重做控件重做佇列中的下一個動作。
BOOL Redo();
傳回值
如果成功,則為非零;否則為 0。
備註
如需詳細資訊,請參閱 EM_REDO
Windows SDK 中的 。
CRichEditCtrl::ReplaceSel
以指定的文字取代這個 CRichEditCtrl
物件中的目前選取範圍。
void ReplaceSel(
LPCTSTR lpszNewText,
BOOL bCanUndo = FALSE);
參數
lpszNewText
包含取代文字之 Null 終止字串的指標。
bCanUndo
若要指定此函式可以復原,請將此參數的值設定為 TRUE
。 預設值是 FALSE
。
備註
若要取代這個 CRichEditCtrl
物件中的所有文字,請使用 CWnd::SetWindowText
。
如果沒有目前的選取範圍,則會在插入點插入取代文字,也就是目前的插入號位置。
此函式會將插入的文字格式化為現有的字元格式。 取代整個文字範圍時(在呼叫ReplaceSel
之前呼叫 SetSel
(0,-1), 有一個段落字元的結尾會保留前一段的格式,而新插入的文字會繼承。
如需詳細資訊,請參閱 EM_REPLACESEL
Windows SDK 中的 。
範例
請參閱 LineIndex
的範例。
CRichEditCtrl::RequestResize
強制此 CRichEditCtrl
物件將通知訊息傳送 EN_REQUESTRESIZE
至其父視窗。
void RequestResize();
備註
此函式在處理無CRichEditCtrl
底物件時CWnd::OnSize
很有用。
如需詳細資訊,請參閱 EM_REQUESTRESIZE
Windows SDK 中關於 Rich Edit Controls 的訊息和無底豐富編輯控件一節。
CRichEditCtrl::SetAutoURLDetect
設定豐富的編輯控制件,以自動偵測 URL。
BOOL SetAutoURLDetect(BOOL bEnable = TRUE);
參數
bEnable
指定控制項是否設定為自動偵測 URL。 如果 TRUE
為 ,則會啟用它。 如果 FALSE
為 ,則會停用。
傳回值
如果成功,則為零,否則為非零。 例如,訊息可能會因為記憶體不足而失敗。
備註
如果啟用,RTF 編輯控件會掃描文字,以判斷它是否符合標準 URL 格式。 如需這些 URL 格式的清單,請參閱 EM_AUTOURLDETECT
Windows SDK。
注意
如果您的編輯控制件對網址以外的文字使用效果,CFE_LINK
請勿設定SetAutoURLDetect
TRUE
為 。 SetAutoURLDetect
會啟用 URL 的這個效果,並針對所有其他文字停用它。 如需效果的詳細資訊CFE_LINK
,請參閱EN_LINK。
CRichEditCtrl::SetBackgroundColor
設定這個 CRichEditCtrl
物件的背景色彩。
COLORREF SetBackgroundColor(
BOOL bSysColor,
COLORREF cr);
參數
bSysColor
指出背景色彩是否應該設定為系統值。 如果此值為 TRUE
, cr
則會忽略。
cr
要求的背景色彩。 只有在 是 FALSE
時才bSysColor
使用 。
傳回值
這個 CRichEditCtrl
物件的上一個背景色彩。
備註
背景色彩可以設定為系統值或指定的 COLORREF
值。
如需詳細資訊,請參閱 EM_SETBKGNDCOLOR
Windows SDK 中的訊息和 COLORREF
結構。
範例
// 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
,其中包含新的預設字元格式屬性。
在第二個 CHARFORMAT2
版本中,結構的指標,這是結構的 Rich Edit 2.0 延伸模組 CHARFORMAT
,其中包含預設字元格式屬性。
傳回值
如果成功,則為非零;否則為 0。
備註
此函式只會變更 成員所dwMask
cf
指定的屬性。
如需詳細資訊,請參閱 EM_SETCHARFORMAT
Windows SDK 中的訊息和 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
。
如需詳細資訊,請參閱 EM_SETEVENTMASK
Windows SDK 中的 。
範例
// 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
擷取。
如需詳細資訊,請參閱 EM_SETMODIFY
Windows SDK 中的 。
範例
請參閱 GetModify
的範例。
CRichEditCtrl::SetOLECallback
為這個 CRichEditCtrl
物件提供 IRichEditOleCallback
物件,以用來存取 OLE 相關資源和資訊。
BOOL SetOLECallback(IRichEditOleCallback* pCallback);
參數
pCallback
IRichEditOleCallback
這個CRichEditCtrl
物件將用來取得 OLE 相關資源和資訊的物件指標。
傳回值
如果成功,則為非零;否則為 0。
備註
這個 CRichEditCtrl
物件會呼叫 IUnknown::AddRef
,以遞增 所 pCallback
指定 COM 物件的使用量計數。
如需詳細資訊,請參閱 EM_SETOLECALLBACK
Windows SDK 中的訊息和 IRichEditOleCallback
介面。
CRichEditCtrl::SetOptions
設定這個 CRichEditCtrl
物件的選項。
void SetOptions(
WORD wOp,
DWORD dwFlags);
參數
wOp
表示作業的類型。 下列其中一個值:
ECOOP_SET
將選項設定為所dwFlags
指定的選項。ECOOP_OR
將目前的選項與所dwFlags
指定的選項結合在一起。ECOOP_AND
只保留也由 所dwFlags
指定的目前選項。ECOOP_XOR
以邏輯方式排除 OR 目前的選項,其中包含 所dwFlags
指定的選項。
dwFlags
豐富的編輯選項。 旗標值列在一節中。
備註
選項可以是下列值的組合:
ECO_AUTOWORDSELECTION
按兩下時自動選取單字。ECO_AUTOVSCROLL
當使用者在行尾輸入字元時,自動將文字向右卷動 10 個字元。 當使用者按下 ENTER 鍵時,控制項會將所有文字捲動回零位置。ECO_AUTOHSCROLL
當使用者按下最後一行的 ENTER 鍵時,自動向上捲動一頁文字。ECO_NOHIDESEL
否定編輯控制件的預設行為。 當控件失去輸入焦點時,預設行為會隱藏選取範圍,並在控件收到輸入焦點時顯示選取範圍。 如果您指定ECO_NOHIDESEL
,則選取的文字會反轉,即使控件沒有焦點也一樣。ECO_READONLY
防止使用者在編輯控件中輸入或編輯文字。ECO_WANTRETURN
指定當使用者在對話框中將文字輸入多行豐富編輯控件時按下 ENTER 鍵時,插入歸位字元。 如果您未指定此樣式,按下 ENTER 鍵會將命令傳送至豐富的編輯控件父視窗,以模擬單擊父視窗的預設按鈕(例如對話框中的 [確定] 按鈕)。 此樣式不會影響單行編輯控制件。ECO_SAVESEL
當控件失去焦點時,會保留選取範圍。 根據預設,當控件重新取得焦點時,會選取控件的整個內容。ECO_VERTICAL
以垂直方向繪製文字和物件。 僅適用於亞洲語言。
如需詳細資訊,請參閱 EM_SETOPTIONS
Windows SDK 中的 。
範例
// 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
,其中包含新的預設段落格式屬性。
在第二個 PARAFORMAT2
版本中,結構的指標,這是結構的 Rich Edit 2.0 延伸模組 PARAFORMAT
,並包含預設字元格式設定屬性。
傳回值
如果成功,則為非零;否則為 0。
備註
此函式只會變更 成員所dwMask
pf
指定的屬性。
如需詳細資訊,請參閱 EM_SETPARAFORMAT
Windows SDK 中的訊息和 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
標點符號旗標。 如需可能值的清單,請參閱 fType
Windows SDK 中的 參數 EM_SETPUNCTUATION
。
lpPunc
結構的指標 PUNCTUATION
,如 Windows SDK 中所述。
傳回值
如果成功,則為非零,否則為 0。
備註
此成員函式僅適用於作業系統的亞洲語言版本。
CRichEditCtrl::SetReadOnly
ECO_READONLY
變更這個 CRichEditCtrl
物件的選項。
BOOL SetReadOnly(BOOL bReadOnly = TRUE);
參數
bReadOnly
指出這個 CRichEditCtrl
物件是否應該唯讀。
傳回值
如果成功,則為非零;否則為 0。
備註
如您您設定的簡短描述,請參閱 SetOptions
。 您可以使用此函式來設定此 CRichEditCtrl
物件的所有選項。
如需詳細資訊,請參閱 EM_SETREADONLY
Windows SDK 中的 。
範例
// 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
讓格式化矩形大於或小於豐富的編輯視窗。
如需詳細資訊,請參閱 EM_SETRECT
Windows SDK 中的 。
範例
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
選取範圍之第一個字元之以零起始的索引。
nEndChar
選取範圍最後一個字元之以零起始的索引。
cr
CHARRANGE
結構,保留目前選取範圍的界限。
備註
此函式的兩種形式提供替代方式來設定選取範圍的界限。 這些表單的簡短描述如下:
SetSel(
cr
) 此窗體會CHARRANGE
使用 結構cpMin
及其 和cpMax
成員來設定界限。SetSel(
nStartChar
,nEndChar
) 此窗體會使用參數nStartChar
和 nEndChar 來設定界限。
插入號會放在選取範圍結尾,此選取範圍是由開頭(或nStartChar
) 和結尾(cpMin
cpMax
或nEndChar
) 索引的較大範圍所表示。 此函式會捲動 的內容 CRichEditCtrl
,讓插入號可見。
若要選取此 CRichEditCtrl
物件中的所有文字,請呼叫 SetSel
開頭索引為0,結尾索引為 - 1。
如需詳細資訊,請參閱 EM_EXSETSEL
Windows SDK 中的訊息和 CHARRANGE
結構。
範例
請參閱 GetSel
的範例。
CRichEditCtrl::SetSelectionCharFormat
設定此 CRichEditCtrl
物件中目前選取範圍中文字的字元格式設定屬性。
BOOL SetSelectionCharFormat(CHARFORMAT& cf);
BOOL SetSelectionCharFormat(CHARFORMAT2& cf);
參數
cf
在第一個版本中,結構指標 CHARFORMAT
,其中包含目前選取範圍的新字元格式屬性。
在第二個 CHARFORMAT2
版本中,結構的指標,這是結構的 Rich Edit 2.0 延伸模組 CHARFORMAT
,其中包含目前選取範圍的新字元格式屬性。
傳回值
如果成功,則為非零;否則為 0。
備註
只有 cf 成員所dwMask
指定的屬性會由此函式變更。
如需詳細資訊,請參閱 EM_SETCHARFORMAT
Windows SDK 中的 和 CHARFORMAT
和 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
設定用於 WYSIWYG 的目標裝置和線條寬度(您所看到的內容)格式設定此 CRichEditCtrl
物件。
BOOL SetTargetDevice(
HDC hDC,
long lLineWidth);
BOOL SetTargetDevice(
CDC& dc,
long lLineWidth);
參數
hDC
處理新目標裝置的裝置內容。
lLineWidth
要用於格式化的線條寬度。
dc
CDC
用於新的目標裝置。
傳回值
如果成功,則為非零;否則為 0。
備註
如果此函式成功,豐富編輯控件會擁有傳遞為參數的裝置內容。 在此情況下,呼叫函式不應終結裝置內容。
如需詳細資訊,請參閱 EM_SETTARGETDEVICE
Windows SDK 中的 。
範例
// 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 中的 mode 參數 EM_SETTEXTMODE
。
傳回值
如果成功,則為零,否則為非零。
備註
如需文字模式的描述,請參閱 EM_SETTEXTMODE
Windows SDK。
如果控件包含文字,則此成員函式會失敗。 若要確定控制件是空的,請使用空字串傳送 WM_SETTEXT
訊息。
CRichEditCtrl::SetUndoLimit
設定可儲存在復原佇列中的動作數目上限。
UINT SetUndoLimit(UINT nLimit);
參數
nLimit
指定可儲存在復原佇列中的動作數目上限。 設定為零以停用復原。
傳回值
豐富編輯控件的新復原動作數目上限。
備註
根據預設,復原佇列中的動作數目上限為 100。 如果您增加這個數位,則必須有足夠的可用記憶體來容納新的數位。 為了提升效能,請將限制設定為最小的可能值。
CRichEditCtrl::SetWordCharFormat
設定此 CRichEditCtrl
物件中目前選取之單字的字元格式設定屬性。
BOOL SetWordCharFormat(CHARFORMAT& cf);
BOOL SetWordCharFormat(CHARFORMAT2& cf);
參數
cf
在第一個 CHARFORMAT
版本中,結構指標,其中包含目前選取之單字的新字元格式屬性。
在第二個 CHARFORMAT2
版本中,結構的指標,這是結構的 Rich Edit 2.0 延伸模組 CHARFORMAT
,其中包含目前選取之單字的新字元格式屬性。
傳回值
如果成功,則為非零;否則為 0。
備註
此函式只會變更 成員所dwMask
cf
指定的屬性。
如需詳細資訊,請參閱 EM_SETCHARFORMAT
Windows SDK 中的訊息和 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
設定豐富編輯控件的自動換行和斷詞選項。
UINT SetWordWrapMode(UINT uFlags) const;
參數
uFlags
用於自動換行和斷詞的選項。 如需可能選項的清單,請參閱 EM_SETWORDWRAPMODE
Windows SDK 中的 。
傳回值
目前的自動換行和斷詞選項。
備註
此訊息僅適用於作業系統的亞洲語言版本。
CRichEditCtrl::StopGroupTyping
停止控制項將其他輸入動作收集到目前的復原動作。
void StopGroupTyping();
備註
控件會將下一個輸入動作儲存至復原佇列中的新動作。
如需詳細資訊,請參閱 EM_STOPGROUPTYPING
Windows SDK 中的 。
CRichEditCtrl::StreamIn
將這個 CRichEditCtrl
物件中的文字取代為來自指定輸入數據流的文字。
long StreamIn(
int nFormat,
EDITSTREAM& es);
參數
nFormat
指定輸入數據格式的旗標。 如需詳細資訊,請參閱<備註>一節。
es
EDITSTREAM
結構,指定輸入數據流。 如需詳細資訊,請參閱<備註>一節。
傳回值
從輸入數據流讀取的字元數。
備註
的值 nFormat
必須是下列其中一項:
SF_TEXT
表示唯讀取文字。SF_RTF
表示讀取文字和格式設定。
這其中一個值可以與 SFF_SELECTION
結合。 如果 SFF_SELECTION
指定了 , StreamIn
請將目前的選取範圍取代為輸入數據流的內容。 如果未指定,則會 StreamIn
取代這個 CRichEditCtrl
對象的整個內容。
在 參數es
中EDITSTREAM
,您可以指定回呼函式,以文字填滿緩衝區。 重複呼叫此回呼函式,直到輸入數據流用盡為止。
如需詳細資訊,請參閱 EM_STREAMIN
Windows SDK 中的訊息和 EDITSTREAM
結構。
範例
// 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
對象的整個內容。
在 參數es
中EDITSTREAM
,您可以指定回呼函式,以文字填滿緩衝區。 重複呼叫此回呼函式,直到輸出數據流用盡為止。
如需詳細資訊,請參閱 EM_STREAMOUT
Windows SDK 中的訊息和 EDITSTREAM
結構。
範例
// 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。
備註
復原作業也可以復原。 例如,您可以使用第一次呼叫 Undo
來還原已刪除的文字。 只要沒有介入的編輯作業,您就可以再次移除文字,並再次呼叫 Undo
。
如需詳細資訊,請參閱 EM_UNDO
Windows SDK 中的 。
範例
請參閱 CanUndo
的範例。