Rich Edit

This section contains information about the programming elements used with rich edit controls. A rich edit control enables the user to enter, edit, print, and save text. The text can be assigned character and paragraph formatting, and can include embedded Component Object Model (COM) objects.

Because rich edit controls support almost all of the messages and notification codes used with multiline Edit Controls, applications that already use edit controls can easily be changed to use rich edit controls.

Overviews

Topic Contents
About Rich Edit Controls This section introduces rich edit controls.
Using Rich Edit Controls This section contains topics that demonstrate how to create and use rich edit controls.

Functions

Topic Contents
AutoCorrectProc The AutoCorrectProc function is an application defined callback function used with the EM_SETAUTOCORRECTPROC message.
EditStreamCallback The EditStreamCallback function is an application defined callback function used with the EM_STREAMIN and EM_STREAMOUT messages. It is used to transfer a stream of data into or out of a rich edit control.
EditWordBreakProcEx The EditWordBreakProcEx function is an application defined callback function used with the EM_SETWORDBREAKPROCEX message. It determines the character index of the word break or the character class and word-break flags of the characters in the specified text.
HyphenateProc The HyphenateProc function is an application defined callback function used with the EM_SETHYPHENATEINFO message. It determines how hyphenation is done in a Microsoft Rich Edit control.

Interfaces

Topic Contents
IRichEditOle The IRichEditOle interface exposes the COM functionality of a rich edit control. The interface can be obtained by sending the EM_GETOLEINTERFACE message.
IRichEditOleCallback The IRichEditOleCallback interface is used by a rich text edit control to retrieve OLE-related information from its client. A rich edit control client is responsible for implementing this interface and assigning it to the control by using the EM_SETOLECALLBACK message.

Messages

Topic Contents
EM_AUTOURLDETECT Enables or disables automatic detection of URLs by a rich edit control.
EM_CANPASTE Determines whether a rich edit control can paste a specified clipboard format.
EM_CANREDO Determines whether there are any actions in the control redo queue.
EM_DISPLAYBAND Displays a portion of the contents of a rich edit control, as previously formatted for a device using the EM_FORMATRANGE message.
EM_EXGETSEL Retrieves the starting and ending character positions of the selection in a rich edit control.
EM_EXLIMITTEXT Sets an upper limit to the amount of text the user can type or paste into a rich edit control.
EM_EXLINEFROMCHAR Determines which line contains the specified character in a rich edit control.
EM_EXSETSEL Selects a range of characters or COM objects in a Rich Edit control.
EM_FINDTEXT Finds text within a rich edit control.
EM_FINDTEXTEX Finds text within a rich edit control.
EM_FINDTEXTEXW Finds Unicode text within a rich edit control.
EM_FINDTEXTW Finds Unicode text within a rich edit control.
EM_FINDWORDBREAK Finds the next word break before or after the specified character position or retrieves information about the character at that position.
EM_FORMATRANGE Formats a range of text in a rich edit control for a specific device.
EM_GETAUTOURLDETECT Indicates whether the auto URL detection is turned on in the rich edit control.
EM_GETBIDIOPTIONS Indicates the current state of the bidirectional options in the rich edit control.
EM_GETCHARFORMAT Determines the character formatting in a rich edit control.
EM_GETCTFMODEBIAS Gets the Text Services Framework (TSF) mode bias values for a Rich Edit control.
EM_GETCTFOPENSTATUS Determines if the TSF keyboard is open or closed.
EM_GETEDITSTYLE Retrieves the current edit style flags.
EM_GETEVENTMASK Retrieves the event mask for a rich edit control. The event mask specifies which notification codes the control sends to its parent window.
EM_GETHYPHENATEINFO Gets information about hyphenation for a Rich Edit control.
EM_GETIMECOLOR Retrieves the Input Method Editor (IME) composition color. This message is available only in Asian-language versions of the operating system.
EM_GETIMECOMPMODE Gets the current IME mode for a rich edit control.
EM_GETIMECOMPTEXT Gets the IME composition text.
EM_GETIMEMODEBIAS Gets the IME mode bias for a Rich Edit control.
EM_GETIMEOPTIONS Retrieves the current IME options. This message is available only in Asian-language versions of the operating system.
EM_GETIMEPROPERTY Gets the property and capabilities of the IME associated with the current input locale.
EM_GETLANGOPTIONS Gets a rich edit control's option settings for IME and Asian language support.
EM_GETOLEINTERFACE Retrieves an IRichEditOle object that a client can use to access a rich edit control's COM functionality.
EM_GETOPTIONS Retrieves rich edit control options.
EM_GETPAGEROTATE Deprecated. Gets the text layout for a Rich Edit control.
EM_GETPARAFORMAT Retrieves the paragraph formatting of the current selection in a rich edit control.
EM_GETPUNCTUATION Gets the current punctuation characters for the rich edit control. This message is available only in Asian-language versions of the operating system.
EM_GETREDONAME Retrieves the type of the next action, if any, in the rich edit control's redo queue.
EM_GETSCROLLPOS Obtains the current scroll position of the edit control.
EM_GETSELTEXT Retrieves the currently selected text in a rich edit control.
EM_GETTEXTEX Gets all of the text from the rich edit control in any particular code base you want.
EM_GETTEXTLENGTHEX Calculates text length in various ways. It is usually called before creating a buffer to receive the text from the control.
EM_GETTEXTMODE Gets the current text mode and undo level of a rich edit control.
EM_GETTEXTRANGE Retrieves a specified range of characters from a rich edit control.
EM_GETTYPOGRAPHYOPTIONS Retrieves the current state of the typography options of a rich edit control.
EM_GETUNDONAME Microsoft Rich Edit 2.0 and later: Retrieves the type of the next undo action, if any.
Microsoft Rich Edit 1.0: This message is not supported.
EM_GETWORDBREAKPROCEX Retrieves the address of the currently registered extended word-break procedure.
EM_GETWORDWRAPMODE Gets the current word wrap and word-break options for the rich edit control. This message is available only in Asian-language versions of the operating system.
EM_GETZOOM Gets the current zoom ratio, which is always between 1/64 and 64.
EM_HIDESELECTION Hides or shows the selection in a rich edit control.
EM_ISIME Determines whether the current input locale is an East Asian locale.
EM_PASTESPECIAL Pastes a specific clipboard format in a rich edit control.
EM_RECONVERSION Invokes the IME reconversion dialog box.
EM_REDO Redoes the next action in the control's redo queue.
EM_REQUESTRESIZE Forces a rich edit control to send an EN_REQUESTRESIZE notification code to its parent window.
EM_SELECTIONTYPE Determines the selection type for a rich edit control.
EM_SETBIDIOPTIONS Sets the current state of the bidirectional options in the rich edit control.
EM_SETBKGNDCOLOR Sets the background color for a rich edit control.
EM_SETCHARFORMAT Sets character formatting in a rich edit control.
EM_SETCTFMODEBIAS Set the TSF mode bias for a Rich Edit control.
EM_SETCTFOPENSTATUS Opens or closes the TSF keyboard.
EM_SETEDITSTYLE Sets the current edit style flags.
EM_SETEVENTMASK Sets the event mask for a rich edit control. The event mask specifies which notification codes the control sends to its parent window.
EM_SETFONTSIZE Sets the font size for the selected text.
EM_SETHYPHENATEINFO Sets the way a Rich Edit control does hyphenation.
EM_SETIMECOLOR Sets the IME composition color. This message is available only in Asian-language versions of the operating system.
EM_SETIMEMODEBIAS Sets the IME mode bias for a Rich Edit control.
EM_SETIMEOPTIONS Sets the IME options. This message is available only in Asian-language versions of the operating system.
EM_SETLANGOPTIONS Sets options for IME and Asian language support in a rich edit control.
EM_SETOLECALLBACK Gives a rich edit control an IRichEditOleCallback object that the control uses to get OLE-related resources and information from the client.
EM_SETOPTIONS Sets the options for a rich edit control.
EM_SETPAGEROTATE Deprecated. Sets the text layout for a Rich Edit control.
EM_SETPALETTE Changes the palette that rich edit uses for its display window.
EM_SETPARAFORMAT Sets the paragraph formatting for the current selection in a rich edit control.
EM_SETPUNCTUATION Sets the punctuation characters for a rich edit control. This message is available only in Asian-language versions of the operating system.
EM_SETSCROLLPOS Tells the rich edit control to scroll to a particular point.
EM_SETTARGETDEVICE Sets the target device and line width used for "what you see is what you get" (WYSIWYG) formatting in a rich edit control.
EM_SETTEXTEX Combines the functionality of WM_SETTEXT and EM_REPLACESEL, and adds the ability to set text using a code page and to use either rich text or plain text.
EM_SETTEXTMODE Sets the text mode or undo level of a rich edit control. The message fails if the control contains any text.
EM_SETTYPOGRAPHYOPTIONS Sets the current state of the typography options of a rich edit control.
EM_SETUNDOLIMIT Sets the maximum number of actions that can stored in the undo queue.
EM_SETWORDBREAKPROCEX Sets the extended word-break procedure.
EM_SETWORDWRAPMODE Sets the word-wrapping and word-breaking options for the rich edit control. This message is available only in Asian-language versions of the operating system.
EM_SETZOOM Sets the zoom ratio anywhere between 1/64 and 64.
EM_SHOWSCROLLBAR Shows or hides one of the scroll bars in the Text Host window.
EM_STOPGROUPTYPING Stops the control from collecting additional typing actions into the current undo action. The control stores the next typing action, if any, into a new action in the undo queue.
EM_STREAMIN Replaces the contents of a rich edit control with a stream of data provided by an application defined EditStreamCallback callback function.
EM_STREAMOUT Causes a rich edit control to pass its contents to an application defined EditStreamCallback callback function. The callback function can then write the stream of data to a file or any other location that it chooses.

Notifications

Topic Contents
EN_ALIGNLTR Notifies a rich edit control's parent window that the paragraph direction has changed to left-to-right. A rich edit control sends this notification code in the form of a WM_COMMAND message.
EN_ALIGNRTL Notifies a rich edit control's parent window that the paragraph direction changed to right-to-left. A rich edit control sends this notification code in the form of a WM_COMMAND message.
EN_CORRECTTEXT Notifies a rich edit control's parent window that a SYV_CORRECT gesture occurred, giving the parent window a chance to cancel correcting the text. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_DRAGDROPDONE Notifies a rich edit control's parent window that the drag-and-drop operation has completed. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_DROPFILES Notifies a rich edit control's parent window that the user is attempting to drop files into the control. A rich edit control sends this notification code in the form of a WM_NOTIFY message when it receives the WM_DROPFILES message.
EN_IMECHANGE Notifies a rich edit control's parent that the IME conversion status has changed. This message is available only for Asian-language versions of the operating system. A rich edit control sends this notification code in the form of a WM_COMMAND message.
EN_LINK Notifies a rich edit control's parent window when the user clicks the mouse or when the mouse pointer is over text that has the CFE_LINK effect. The parent window of the control receives this notification code through a WM_NOTIFY message.
EN_LOWFIRTF Notifies a rich edit control's parent window of a Rich Edit control that an unsupported Rich Text Format (RTF) keyword was received. A Rich Edit control sends this notification code in the form of a WM_NOTIFY message.
EN_MSGFILTER Notifies a rich edit control's parent window of a keyboard or mouse event in the control. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_OBJECTPOSITIONS Notifies a rich edit control's parent window when the control reads in objects. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_OLEOPFAILED Notifies a rich edit control's parent window that a user action on a COM object has failed. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_PROTECTED Notifies a rich edit control's parent window that the user is taking an action that would change a protected range of text. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_REQUESTRESIZE Notifies a rich edit control's parent window that the control's contents are either smaller or larger than the control's window size. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_SAVECLIPBOARD Notifies the rich edit control's parent window that the control is closing and the clipboard contains information. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_SELCHANGE Notifies a rich edit control's parent window that the current selection has changed. A rich edit control sends this notification code in the form of a WM_NOTIFY message.
EN_STOPNOUNDO Notifies a rich edit control's parent window that an action occurred for which the control cannot allocate enough memory to maintain the undo state. A rich edit control sends this notification code in the form of a WM_NOTIFY message.

Structures

Topic Contents
BIDIOPTIONS Contains bidirectional information about a rich edit control. This structure is used by the EM_GETBIDIOPTIONS and EM_SETBIDIOPTIONS messages to get and set the bidirectional information for a control.
CHARFORMAT Contains information about character formatting in a rich edit control.
CHARFORMAT2 Contains information about character formatting in a rich edit control. CHARFORMAT2 is a Microsoft Rich Edit 2.0 extension of the CHARFORMAT structure. Microsoft Rich Edit 2.0 allows you to use either structure with the EM_GETCHARFORMAT and EM_SETCHARFORMAT messages.
CHARRANGE Specifies a range of characters in a rich edit control.
COMPCOLOR Contains color settings for a composition string.
EDITSTREAM Contains information that an application passes to a rich edit control in a EM_STREAMIN or EM_STREAMOUT message. The rich edit control uses the information to transfer a stream of data into or out of the control.
ENCORRECTTEXT Contains information about the selected text to be corrected.
ENDROPFILES Contains information associated with an EN_DROPFILES notification code. A rich edit control sends this notification code when it receives a WM_DROPFILES message.
ENLINK Contains information about an EN_LINK notification code from a rich edit control.
ENLOWFIRTF Contains information about an unsupported RTF keyword in a Rich Edit control.
ENOLEOPFAILED Contains information about a failed operation.
ENPROTECTED Contains information associated with an EN_PROTECTED notification code. A rich edit control sends this notification when the user attempts to edit protected text.
ENSAVECLIPBOARD Contains information about objects and text on the clipboard.
FINDTEXT Contains information about a search operation in a rich edit control. This structure is used with the EM_FINDTEXT message.
FINDTEXTEX Contains information about text to search for in a rich edit control. This structure is used with the EM_FINDTEXTEX message.
FORMATRANGE Contains information that a rich edit control uses to format its output for a particular device. This structure is used with the EM_FORMATRANGE message.
GETTEXTEX Contains information about an operation to get text from a rich edit control. This structure is passed in the wParam in the EM_GETTEXTEX message.
GETTEXTLENGTHEX Contains information about how the text length of a rich edit control should be calculated. This structure is passed in the wParam in the EM_GETTEXTLENGTHEX message.
HYPHENATEINFO Contains information about hyphenation in a Rich Edit control.
HYPHRESULT Contains information about the result of hyphenation in a Rich Edit control.
IMECOMPTEXT Contains information about the composition text in a Rich Edit control.
MSGFILTER Contains information about a keyboard or mouse event. A rich edit control sends this structure to its parent window as part of an EN_MSGFILTER notification code, enabling the parent to change the message or prevent it from being processed.
OBJECTPOSITIONS Contains object position information.
PARAFORMAT Contains information about paragraph formatting attributes in a rich edit control. This structure is used with the EM_GETPARAFORMAT and EM_SETPARAFORMAT messages.
PARAFORMAT2 Contains information about paragraph formatting attributes in a rich edit control.
PUNCTUATION Contains information about the punctuation used in a rich edit control.
REOBJECT Contains information about an object.
REPASTESPECIAL Contains information identifying whether the display aspect of a pasted object should be based on the content of the object or the icon that represent the object.
REQRESIZE Contains the requested size of a rich edit control. A rich edit control sends this structure to its parent window as part of an EN_REQUESTRESIZE notification code.
SELCHANGE Contains information associated with an EN_SELCHANGE notification code. A rich edit control sends this notification to its parent window when the current selection changes.
SETTEXTEX Specifies which code page (if any) to use in setting text, whether the text replaces all the text in the control or just the selection, and whether the undo state is to be preserved.
TEXTRANGE Receives a range of text from a rich edit control. This structure is filled in by the EM_GETTEXTRANGE message. The buffer pointed to by the lpstrText member must be large enough to receive all characters and the terminating null character.

Constants

Topic Contents
Rich Edit Control Event Mask Flags The event mask specifies which notification codes a rich edit control sends to its parent window.
Rich Edit Control Styles Describes the window styles that are unique to rich edit controls.