有没有能够实现超级链接的文本编辑控件?

pzb_go_on 2009-08-30 10:37:04
就像QQ聊天记录显示框,大家都很熟。对方给我发了一个URL链接,在我的聊天记录显示窗口上能看到,并且能点击打开链接。好像普通的CRichText控件实现不了。
...全文
47 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xylicon 2009-08-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 pzb_go_on 的回复:]
哦,谢谢楼上两位兄弟。
再问一下,如何实现下面这个功能。譬如给对方发送图片或者文件,如果对方不在线,老版的QQ会提示:对方不在线,你可以给对方发送邮件。类似这样的提示,其中“发送邮件”就是个连接,通过不同字体和下划线来亮显,点击后就会弹出OUTLOOOK。
最好有个实例代码,一楼给的解决方案我只能理解部分,能否详细解释一下?thx
[/Quote]

其实我只是给出了部分核心代码,我以为楼主会知道,或者我是希望lz看了这部分代码还有不理解的,上网找找,很快就能理解了。

那我简单说说吧。
::SendMessage(m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
这里的m_hWnd 是richedit的句柄。

然后,你上面说的那个实现outlook的调出也很简单。

通过我上面给的代码,你实现了链接。
然后就在你的继承自RichEidt的类中响应ON_NOTIFY_REFLECT 或者 如果你不继承RichEdit类,就在RichEdit的父窗口中响应ON_NOTIFY 的EN_LINK 。

ON_NOTIFY_REFLECT(EN_LINK, OnLink)

在OnLink函数里,加一句 ::ShellExecute(NULL, _T("open"), _T("mailto:yournick@yourmail.com"), NULL, NULL, SW_SHOW);
就行了。
pzb_go_on 2009-08-30
  • 打赏
  • 举报
回复
各位兄弟,会的话就给个详细解答,不要只说“CRichEditCtrl 就行”之类的,哥几个回的这种贴都是寂寞,谢谢了。
pzb_go_on 2009-08-30
  • 打赏
  • 举报
回复
哦,谢谢楼上两位兄弟。
再问一下,如何实现下面这个功能。譬如给对方发送图片或者文件,如果对方不在线,老版的QQ会提示:对方不在线,你可以给对方发送邮件。类似这样的提示,其中“发送邮件”就是个连接,通过不同字体和下划线来亮显,点击后就会弹出OUTLOOOK。
最好有个实例代码,一楼给的解决方案我只能理解部分,能否详细解释一下?thx
  • 打赏
  • 举报
回复
CRichEditCtrl OK!
MoXiaoRab 2009-08-30
  • 打赏
  • 举报
回复
用CRichEdit即可
xylicon 2009-08-30
  • 打赏
  • 举报
回复
用RichEdit 就可以了啊。

CHARFORMAT2 cf2;
cf2.dwMask |= CFM_LINK;
cf2.dwEffects |= CFM_LINK;
::SendMessage(m_hWnd, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧