相关链接:CRichEditCtrl实现MSN/QQ动画表情
对与自定义窗口,可以使用CreateWindow, SetWindowLong或者是SubclassWindow实现,不过这不是我现在讨论的话题。
一、MSN超链接的实现
就在我觉得实现OLE的插入有难度时,就想过了直接自己绘制,自己维护,但是觉得做法不是很正统,对不起Microsoft给我留的IRichEditOle接口,就没有使用这种解决方法。我们大致讲一下实现方式: 1typedef struct _HYPERLINKINFO 这里有一个UINT unLinkDlgID,是来描述点击这个link后弹出的dialog的。 CRect rectDimension;用来保存这个link的rect,以检查鼠标是否在其中,以显示鼠标光标;对于多links,他使用了一个CList来维护(或者可以选择使用std::list): 1CList 其中很关键的就是判断鼠标是不是在一个link的rect内。这种实现的确很不错,但是我要说的是另一个更现代的实现方式,实现起来也简单得多,关键的就是有个Style =>。ENM_LINK 这个style在RichEdit20中才有,所以我们应该使用RichEdit20A!我们维护这样一个类: 1class _AFX_RICHEDITEX_STATE |
正在阅读:CRichEditCtrl实现MSN背景,字体,超链接CRichEditCtrl实现MSN背景,字体,超链接
2005-07-13 10:22
出处:
责任编辑:moningfeng
键盘也能翻页,试试“← →”键