RichEdit
继承了 ScrollableBox
容器属性和方法,更多可用属性和方法请参考:ScrollableBox 容器
属性名称 | 默认值 | 参数类型 | 用途 |
---|---|---|---|
vscrollbar | false | BOOL | 是否使用竖向滚动条,如(true) |
autovscroll | false | BOOL | 是否随输入竖向滚动,如(true) |
hscrollbar | false | BOOL | 是否使用横向滚动条,如(true) |
autohscroll | false | BOOL | 是否随输入横向滚动,如(true) |
wanttab | true | BOOL | 是否接受tab按键消息,如(true) |
wantreturnmsg | true | BOOL | 是否接受return按键消息,如(true) |
returnmsgwantctrl | true | BOOL | 是否接受ctrl+return按键消息,如(true) |
rich | true | BOOL | 是否使用富格式,如(true) |
multiline | true | BOOL | 是否使用多行,如(true) |
readonly | false | BOOL | 是否只读,如(false) |
password | false | BOOL | 是否显示密码符,如(true) |
number | false | BOOL | 是否只允许输入数字,如(false) |
align | left | STRING | 文字对齐方式,取值left、right、hcenter、top、vcenter、bottom,如(right) |
font | -1 | INT | 字体id,如(0) |
promptmode | false | BOOL | 是否显示提示文字,如(true) |
vscrollbar | false | BOOL | 是否使用竖向滚动条,如(true) |
autovscroll | false | BOOL | 是否随输入竖向滚动,如(true) |
hscrollbar | false | BOOL | 是否使用横向滚动条,如(true) |
autohscroll | false | BOOL | 是否随输入横向滚动,如(true) |
wanttab | true | BOOL | 是否接受tab按键消息,如(true) |
wantreturnmsg | true | BOOL | 是否接受return按键消息,如(true) |
returnmsgwantctrl | true | BOOL | 是否接受ctrl+return按键消息,如(true) |
rich | true | BOOL | 是否使用富格式,如(true) |
multiline | true | BOOL | 是否使用多行,如(true) |
readonly | false | BOOL | 是否只读,如(false) |
password | false | BOOL | 是否显示密码符,如(true) |
number | false | BOOL | 是否只允许输入数字,如(false) |
align | left | STRING | 文字对齐方式,取值left、right、hcenter、top、vcenter、bottom,如(right) |
text | STRING | 显示文本,如(测试文本) | |
font | -1 | INT | 字体id,如(0) |
normaltextcolor | STRING | 普通状态文字颜色,不指定则使用默认颜色,如(blue) | |
disabledtextcolor | STRING | 禁用状态文字颜色,不指定则使用默认颜色,如(blue) | |
promptmode | false | BOOL | 是否显示提示文字,如(true) |
prompttext | STRING | 文本框内提示文字,当文本框text为空时显示 | |
prompttextid | STRING | 多语言功能的ID,如(TEXT_OUT) | |
promptcolor | STRING | 文本框内提示文字的颜色 |
判断是否接受 TAB 按键消息
bool IsWantTab()
- 参 数:无
- 返回值:返回 true 表示接受,false 表示不接受
判断是否接受 TAB 按键消息
void SetWantTab(bool bWantTab = true)
- 参 数:
bWantTab
为 true 则接受该消息,false 为不接受
- 返回值:无
判断是否接受 RETURN 按键消息
bool IsNeedReturnMsg()
- 参 数:无
- 返回值:返回 true 表示接受,false 表示不接受
设置是否接受 RETURN 按键消息
void SetNeedReturnMsg(bool bNeedReturnMsg = true)
- 参 数:
bNeedReturnMsg
为 true 则接受该消息,false 为不接受
- 返回值:无
判断是否接受CTRL+RETURN 组合键消息
bool IsReturnMsgWantCtrl()
- 参 数:无
- 返回值:返回 true 表示接受,false 表示不接受
设置是否接受CTRL+RETUREN 组合键消息
void SetReturnMsgWantCtrl(bool bReturnMsgWantCtrl = true)
- 参 数:
bReturnMsgWantCtrl
为 true 则接受该消息,false 为不接受
- 返回值:无
是否是富文本状态
bool IsRich()
- 参 数:无
- 返回值:返回 true 为是,否则为 false
设置控件为富文本编辑状态
void SetRich(bool bRich = true)
- 参 数:
bRich
设置 true 为富文本状态,false 为普通状态
- 返回值:无
是否是只读状态
bool IsReadOnly()
- 参 数:无
- 返回值:返回 true 为只读状态,否则为 false
设置控件为只读状态
void SetReadOnly(bool bReadOnly = true)
- 参 数:
bReadOnly
设置 true 让控件变为只读状态,false 为可写入状态
- 返回值:无
是否是密码状态控件
bool IsPassword()
- 参 数:无
- 返回值:返回 true 表示是密码控件,否则为 false
设置控件为密码控件(显示 ***)
void SetPassword(bool bPassword)
- 参 数:
bPassword
设置为 true 让控件显示内容为 ***,false 为显示正常内容
- 返回值:无
获取超出矩形区域的文本显示方式
bool GetWordWrap()
- 参 数:无
- 返回值:返回 true 时并且在多行模式下内容被换行显示,false 则表示截断显示
设置超出矩形区域的文本显示方式
void SetWordWrap(bool bWordWrap = true)
- 参 数:
bWordWrap
为 true 时并且在多行模式下内容被换行显示,false 则表示截断显示
- 返回值:无
获取当前设置的字体索引
int GetFont()
- 参 数:无
- 返回值:返回字体索引(对应 global.xml 中字体的顺序)
设置字体索引
void SetFont(int index)
- 参 数:
index
要设置的字体索引(对应 global.xml 中字体的顺序)
- 返回值:无
根据字体名称设置字体
void SetFont(const std::wstring& pStrFontName, int nSize, bool bBold, bool bUnderline, bool bItalic)
- 参 数:
pStrFontName
字体名称nSize
字体大小bBold
是否粗体显示bUnderline
是否带有下划线bItalic
是否斜体显示
- 返回值:无
获取窗口样式
LONG GetWinStyle()
- 参 数:无
- 返回值:返回窗口样式
设置窗口样式
void SetWinStyle(LONG lStyle)
- 参 数:
lStyle
要设置的窗口样式
- 返回值:无
获取内容垂直对其方式
VerAlignType GetTextVerAlignType()
- 参 数:无
- 返回值:返回内容垂直对其方式(顶端对齐、居中、底端对齐)
设置文本颜色
virtual void SetTextColor(const std::wstring& dwTextColor)
- 参 数:
dwTextColor
要设置的文本颜色,该颜色必须在 global.xml 中存在
- 返回值:无
获取文本颜色
std::wstring GetTextColor()
- 参 数:无
- 返回值:返回当前文本颜色
获取限制字符数量
int GetLimitText()
- 参 数:无
- 返回值:返回限制字符数量
设置限制字符数量
void SetLimitText(int iChars)
- 参 数:
iChars
要限制的字符数量
- 返回值:无
获取内容的长度
long GetTextLength(DWORD dwFlags = GTL_DEFAULT)
- 参 数:
dwFlags
指定用以确定文本长度的方式,参考 https://docs.microsoft.com/en-us/windows/desktop/controls/em-gettextlengthex
- 返回值:返回内容长度
获取控件中的文本
std::wstring GetText()
- 参 数:无
- 返回值:返回控件中的文本内容
获取控件中的文本
virtual std::string GetUTF8Text()
- 参 数:无
- 返回值:返回控件中的文本内容 UTF8 格式
设置控件的文本
void SetText(const std::wstring& strText)
- 参 数:
strText
要设置的文本内容
- 返回值:无
设置控件的文本对应 ID
void SetTextId(const std::wstring& strTextId)
- 参 数:
strTextId
要设置的 ID,该 ID 必须在加载的语言文件中存在
- 返回值:无
设置控件的文本对应 ID
virtual void SetUTF8Text(const std::string& strText)
- 参 数:
strTextId
要设置的 UTF8 格式 ID,该 ID 必须在加载的语言文件中存在
- 返回值:无
获取修改标志
bool GetModify()
- 参 数:无
- 返回值:返回 true 为设置了修改标志,否则为 false
设置修改标志
void SetModify(bool bModified = true)
- 参 数:
bModified
设置为 true 表示文本已经被修改,false 为未修改,默认为 true
- 返回值:无
获取所选文本的起始位置和结束位置
void GetSel(CHARRANGE &cr)
- 参 数:
cr
返回起始位置和结束位置
- 返回值:无
获取所选文本的起始位置和结束位置
void GetSel(long& nStartChar, long& nEndChar)
- 参 数:
nStartChar
返回起始位置nEndChar
返回结束位置
- 返回值:无
选择一部分内容
int SetSel(CHARRANGE &cr)
- 参 数:
cr
要选择的文字起始位置和结束位置
- 返回值:返回选择的文字数量
选择一部分内容
int SetSel(long nStartChar, long nEndChar)
- 参 数:
nStartChar
要选择的起始位置nEndChar
要选择的结束位置
- 返回值:返回选择的文字数量
替换所选内容
void ReplaceSel(const std::wstring& lpszNewText, bool bCanUndo)
- 参 数:
lpszNewText
要替换的文字bCanUndo
是否可以撤销,true 为可以,否则为 false
- 返回值:无
替换所选内容
void ReplaceSelW(LPCWSTR lpszNewText, bool bCanUndo = false)
- 参 数:
lpszNewText
要替换的文字bCanUndo
是否可以撤销,true 为可以,否则为 false
- 返回值:无
获取所选文字内容
std::wstring GetSelText()
- 参 数:无
- 返回值:返回所选文字内容
全选
int SetSelAll()
- 参 数:无
- 返回值:返回选择的内容数量
不选择任何内容
int SetSelNone()
- 参 数:无
- 返回值:始终返回 0
获取控件的选择类型
WORD GetSelectionType()
- 参 数:无
- 返回值:返回控件的选择类型,参考:https://docs.microsoft.com/en-us/windows/desktop/controls/em-selectiontype
获取当前缩放比
bool GetZoom(int& nNum, int& nDen)
- 参 数:
nNum
缩放比率分子nDen
缩放比率分母
- 返回值:如果处理了消息则返回 TRUE
设置缩放比
bool SetZoom(int nNum, int nDen)
- 参 数:
nNum
缩放比率分子nDen
缩放比率分母
- 返回值:成功返回 true,失败返回 false
恢复缩放到初始状态
bool SetZoomOff()
- 参 数:无
- 返回值:成功返回 true,否则返回 false
获取是否开启了自动 URL 检测
bool GetAutoURLDetect()
- 参 数:无
- 返回值:返回 true 表示开启了自动检测,否则为 false
设置是否开启 URL 自动检测
bool SetAutoURLDetect(bool bAutoDetect = true)
- 参 数:
bAutoDetect
设置为 true 表示检测 URL,false 为不检测,默认为 true
- 返回值:返回 true 为设置成功,false 为失败
获取控件的事件掩码
DWORD GetEventMask()
- 参 数:无
- 返回值:返回事件掩码
设置控件的事件掩码
DWORD SetEventMask(DWORD dwEventMask)
- 参 数:
dwEventMask
要设置的事件掩码值
- 返回值:返回设置之前的事件掩码值
获取指定范围的内容
std::wstring GetTextRange(long nStartChar, long nEndChar)
- 参 数:
nStartChar
起始位置nEndChar
结束为止
- 返回值:返回设置的指定位置的内容
设置是否隐藏或显示选择的值
void HideSelection(bool bHide = true, bool bChangeStyle = false)
- 参 数:
bHide
是否显示,true 为显示,false 为不显示bChangeStyle
是否修改样式,true 为修改,false 为不修改
- 返回值:无
设置光标到可见位置
void ScrollCaret()
- 参 数:无
- 返回值:无
插入文字
int InsertText(long nInsertAfterChar, LPCTSTR lpstrText, bool bCanUndo = false)
- 参 数:
nInsertAfterChar
要插入的位置lpstrText
要插入的文本bCanUndo
是否可以撤销,true 为可以,否则为 false,默认为 false
- 返回值:返回插入后的文本位置
追加文字
int AppendText(const std::wstring& strText, bool bCanUndo = false)
- 参 数:
strText
要追加的文字bCanUndo
是否可以撤销,true 为可以,否则为 false,默认为 false
- 返回值:返回追加后的文字位置
获取字符格式
DWORD GetDefaultCharFormat(CHARFORMAT2 &cf)
- 参 数:
cf
返回获取的字符格式
- 返回值:返回参数 cf 中 dwMask 的值
设置默认的字符格式
bool SetDefaultCharFormat(CHARFORMAT2 &cf)
- 参 数:
cf
要设置字符格式
- 返回值:返回 true 表示成功,false 为失败
获取被选择的字符格式
DWORD GetSelectionCharFormat(CHARFORMAT2 &cf)
- 参 数:
cf
返回获取的字符格式
- 返回值:返回参数 cf 中 dwMask 的值
设置被选择的字符格式
bool SetSelectionCharFormat(CHARFORMAT2 &cf)
- 参 数:
cf
要设置的字符格式
- 返回值:返回 true 表示成功,false 为失败
设置当前插入点的单词格式
bool SetWordCharFormat(CHARFORMAT2 &cf)
- 参 数:
cf
要设置的单词格式
- 返回值:成功返回 true,失败返回 false
获取当前段落格式
DWORD GetParaFormat(PARAFORMAT2 &pf)
- 参 数:
pf
返回当前段落格式
- 返回值:返回 pf 参数的 dwMask 成员
设置当前段落格式
bool SetParaFormat(PARAFORMAT2 &pf)
- 参 数:
pf
要设置的段落格式样式
- 返回值:成功返回 true,否则返回 false
恢复操作
bool Redo()
- 参 数:无
- 返回值:成功返回 true,失败返回 false
撤销操作
bool Undo()
- 参 数:无
- 返回值:成功返回 true,失败返回 false
清空
void Clear()
- 参 数:无
- 返回值:无
复制所选内容
void Copy()
- 参 数:无
- 返回值:无
剪切所选内容
void Cut()
- 参 数:无
- 返回值:无
粘贴
void Paste()
- 参 数:无
- 返回值:无
检测是否可以粘贴指定剪切板格式
BOOL CanPaste(UINT nFormat = 0)
- 参 数:
nFormat
要检测的格式
- 返回值:可以返回 true,否则返回 false
在控件中粘贴特定的剪贴板格式
void PasteSpecial(UINT uClipFormat, DWORD dwAspect = 0, HMETAFILE hMF = 0)
- 参 数:
uClipFormat
指定剪切板格式dwAspect
指定展示形式hMF
如果 dwAspect 为 DVASPECT_ICON,该函数应该包含图标句柄
- 返回值:无
获取总行数
int GetLineCount()
- 参 数:无
- 返回值:返回总行数
获取一行数据
std::wstring GetLine(int nIndex, int nMaxLength)
- 参 数:
nIndex
要获取的行数nMaxLength
要获取当前行最大的数据长度
- 返回值:返回获取的一行数据
获取指定行的第一个字符索引
int LineIndex(int nLine = -1)
- 参 数:
nLine
要获取第几行数据,默认为 -1
- 返回值:返回指定行的第一个字符索引
获取指定行的数据长度
int LineLength(int nLine = -1)
- 参 数:
nLine
要获取第几行数据,默认为 -1
- 返回值:返回指定行的数据长度
滚动文本
bool LineScroll(int nLines, int nChars = 0)
- 参 数:
nLines
指定垂直滚动方向nChars
指定水平滚动方向
- 返回值:成功返回 true,失败返回 false
获取指定位置字符的客户区坐标
CPoint GetCharPos(long lChar)
- 参 数:
lChar
字符索引位置
- 返回值:返回客户区坐标
获取指定字符所在行数
long LineFromChar(long nIndex)
- 参 数:
nIndex
字符的索引位置
- 返回值:返回当前字符所在的行数
获取指定位置字符的客户区坐标
CPoint PosFromChar(UINT nChar)
- 参 数:
nChar
字符索引位置
- 返回值:返回客户区坐标
根据坐标返回指定字符索引
int CharFromPos(CPoint pt)
- 参 数:
pt
坐标信息
- 返回值:返回最接近参数 pt 所指定的坐标位置
清空撤销列表
void EmptyUndoBuffer()
- 参 数:无
- 返回值:无
设置撤销列表容纳的内容数量
UINT SetUndoLimit(UINT nLimit)
- 参 数:
- `nLimit
- 返回值:返回设置后的撤销列表可容纳内容数量
增加一个回调用于控制输入内容
long StreamIn(int nFormat, EDITSTREAM &es)
- 参 数:
nFormat
指定数据格式的替换选项,见:https://docs.microsoft.com/en-us/windows/desktop/controls/em-streamines
包含自定义回调的结构体
- 返回值:返回读入数据流的数据大小
指定一个回调用于控制输出内容
long StreamOut(int nFormat, EDITSTREAM &es)
- 参 数:
nFormat
指定数据格式的替换选项,见:https://docs.microsoft.com/en-us/windows/desktop/controls/em-streamines
包含自定义回调的结构体
- 返回值:返回写入数据流的数据大小
设置滚动条位置
void SetScrollPos(CSize szPos)
- 参 数:
szPos
要设置的滚动条位置信息
- 返回值:无
向上一行
void LineUp()
- 参 数:无
- 返回值:无
向下一行
void LineDown()
- 参 数:无
- 返回值:无
向上翻页
void PageUp()
- 参 数:无
- 返回值:无
向下翻页
void PageDown()
- 参 数:无
- 返回值:无
返回到顶端
void HomeUp()
- 参 数:无
- 返回值:无
返回到底部
void EndDown()
- 参 数:无
- 返回值:无
水平向左滚动
void LineLeft()
- 参 数:无
- 返回值:无
水平向右滚动
void LineRight()
- 参 数:无
- 返回值:无
水平向左翻页
void PageLeft()
- 参 数:无
- 返回值:无
水平向右翻页
void PageRight()
- 参 数:无
- 返回值:无
返回到最左侧
void HomeLeft()
- 参 数:无
- 返回值:无
返回到最后侧
void EndRight()
- 参 数:无
- 返回值:无
创建光标
BOOL CreateCaret(INT xWidth, INT yHeight)
- 参 数:
xWidth
光标宽度yHeight
光标高度
- 返回值:成功返回 true,失败返回 false
设置是否显示光标
BOOL ShowCaret(BOOL fShow)
- 参 数:
fShow
设置 true 为显示,false 为不显示
- 返回值:成功返回 true,失败返回 false
设置光标颜色
void SetCaretColor(const std::wstring& dwColor)
- 参 数:
dwColor
要设置的颜色值,该值必须在 global.xml 中存在
- 返回值:无
获取光标颜色
std::wstring GetCaretColor()
- 参 数:无
- 返回值:返回光标颜色
获取光标矩形位置
RECT GetCaretRect()
- 参 数:无
- 返回值:返回光标矩形位置
设置光标位置
BOOL SetCaretPos(INT x, INT y)
- 参 数:
x
轴坐标y
轴坐标
- 返回值:成功返回 true,失败返回 false
切换光标是否显示
void ChangeCaretVisiable()
- 参 数:无
- 返回值:无
绘制光标
void PaintCaret(IRenderContext* pRender, const UiRect& rcPaint)
- 参 数:
pRender
绘制引擎rcPaint
绘制位置
- 返回值:无
设置是否显示提示文字
void SetPromptMode(bool bPrompt)
- 参 数:
bPrompt
设置为 true 为显示,false 为不显示
- 返回值:无
获取提示文字
std::wstring GetPromptText()
- 参 数:无
- 返回值:返回提示文字内容
获取提示文字
std::string GetUTF8PromptText()
- 参 数:无
- 返回值:返回 UTF8 格式的提示文字
设置提示文字
void SetPromptText(const std::wstring& strText)
- 参 数:
strText
要设置的提示文字
- 返回值:无
设置提示文字
void SetUTF8PromptText(const std::string& strText)
- 参 数:
strText
要设置的 UTF8 格式提示文字
- 返回值:无
设置提示文字 ID
void SetPromptTextId(const std::wstring& strTextId)
- 参 数:
strText
要设置的提示文字 ID,该 ID 必须在加载的语言文件中存在
- 返回值:无
设置提示文字 ID
void SetUTF8PromptTextId(const std::string& strTextId)
- 参 数:
strText
要设置的 UTF8 格式提示文字 ID,该 ID 必须在加载的语言文件中存在
- 返回值:无
绘制提示文字
void PaintPromptText(IRenderContext* pRender)
- 参 数:
pRender
绘制引擎
- 返回值:无
获取焦点状态下的图片
std::wstring GetFocusedImage()
- 参 数:无
- 返回值:返回焦点状态下的图片
设置焦点状态下的图片
void SetFocusedImage(const std::wstring& strImage)
- 参 数:
strImage
要设置的图片位置
- 返回值:无
绘制指定状态下的图片
virtual void PaintStatusImage(IRenderContext* pRender)
- 参 数:
pRender
绘制引擎
- 返回值:无
设置失去焦点后是否取消选择项
void SetNoSelOnKillFocus(bool bOnSel)
- 参 数:
bOnSel
设置为 true 表示取消选择项,false 为不取消
- 返回值:无
设置获取焦点后是否选择所有内容
void SetSelAllOnFocus(bool bSelAll)
- 参 数:
bSelAll
设置 true 表示在获取焦点时选择所有内容,false 为不选择
- 返回值:无
设置只读模式不显示光标
void SetNoCaretReadonly()
- 参 数:无
- 返回值:无
添加带颜色的文本
void AddColorText(const std::wstring &str, const std::wstring &color)
- 参 数:
str
文本内容color
颜色值,该值必须在 global.xml 中存在
- 返回值:无
添加一个带有文字颜色的超链接
void AddLinkColorText(const std::wstring &str, const std::wstring &color, const std::wstring &linkInfo = L"")
- 参 数:
str
文字内容color
文字颜色linkInfo
链接地址
- 返回值:无
添加一个指定字体带有文字颜色的超链接
void AddLinkColorTextEx(const std::wstring& str, const std::wstring &color, const std::wstring &linkInfo = L"", int font = -1)
- 参 数:
str
文字内容color
文字颜色linkInfo
链接地址font
字体索引
- 返回值:无
添加一个范围用于 hittest 判断是否是链接信息
void AddLinkInfo(const CHARRANGE cr, const std::wstring &linkInfo)
- 参 数:
cr
范围的起始位置和结束位置linkInfo
自定义 link 属性
- 返回值:无
根据point来hittest自定义link的数据
bool HittestCustomLink(CPoint pt, std::wstring& info)
- 参 数:
pt
位置信息info
表示 link 的自定义属性
- 返回值:返回 true 表示在 link 上
清理图片缓存
virtual void ClearImageCache()
- 参 数:无
- 返回值:无
监听回车按键按下事件
void AttachReturn(const EventCallback& callback)
- 参 数:
callback
回车被按下的自定义回调函数
- 返回值:无
监听 TAB 按键按下事件
void AttachTab(const EventCallback& callback)
- 参 数:
callback
TAB 被按下的自定义回调函数
- 返回值:无
监听文本被修改事件
void AttachTextChange(const EventCallback& callback)
- 参 数:
callback
文本被修改后的自定义回调函数
- 返回值:无
监听自定义链接被点击事件
void AttachCustomLinkClk(const EventCallback& callback)
- 参 数:
callback
自定义链接被点击后的自定义回调函数
- 返回值:无
监听大小变化事件
void AttachGetNaturalSize(const FunGetNaturalSize& callback)
- 参 数:
callback
大小被改变后的自定义回调函数
- 返回值:无