如何解决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 举报,一经查实,本站将立刻删除。