CRichEditCtrl :: OnMouseMove

问题描述

在基于Windows的MFC对话框应用程序的Windows OS中,子类化为cricheditctrl,我正在将绿色用于特定格式的文本(%#__#%嵌入文本)。在onmousemove()函数中,如果char是嵌入文本,则显示手形光标

要检查字符是否嵌入文本,我正在使用以下代码检查字符颜色。由于无法在onmousemove()中调用SetSel,因此无法向后选择文本(多个字符),但是对于正向选择,我不会遇到任何问题。

如何处理?

void CMyRichEditCtrl::OnMouseMove(UINT nFlags,CPoint point)
{
long char_index=CharFromPos(point);
CHARRANGE crOld;
CHARFORMAT cf;
GetSel(crOld);
SetSel(char_index,char_index+1);
CString strString=GetSelText();
GetSelectionCharFormat(cf);
bEmbed=(!strString.IsEmpty() && cf.crTextColor == EMbedCOLOR)?true:false;
SetSel(crOld);
if(bEmbed)m_bHandCursor=true;
CRichEditCtrl::OnMouseMove(nFlags,point);
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)