RichEdit中支持超链接的实现

本文介绍如何在RichEdit控件中实现超链接功能,包括自动检测URL并显示为蓝色,以及响应链接点击事件,使用默认浏览器打开链接。主要涉及设置控件事件 mask、自动检测URL及处理WM_LBUTTONDOWN消息。
摘要由CSDN通过智能技术生成

  现在很多IM软件的聊天对话框在接收到网站URL的时候,都能够显示成大家熟悉的蓝色,鼠标移到链接上,还会出现手样的鼠标指针,用户点击后就可以直接打开相应的URL,这对IM软件确实很有用吧,这么方便,实现起来难吗?其实一点也不难,只要设置让你的RICHEDIT支持链接,自动检测URL就行了,再实现一个对连接点击的响应函数就行了。总的来说就几行代码,看看吧。

  我用一个对话框工程来说明一下吧。

  首先,生成一个对话框工程,在界面上加入一个RichEdit控件,并用向导添加一个代码该控件的控件类成员变量,就叫m_re吧。

  现在,该让控件支持超链接和自动检测URL了,在对话框类的OnInitDialog()函数中,我们加入下面的代码就行了:

   DWORD Mask = m_re.GetEventMask();
    Mask = Mask | ENM_LINK  | ENM_MOUSEEVENTS | ENM_SCROLLEVENTS | ENM_KEYEVENTS;
    m_re.SetEventMask(Mask); 
    ::SendMessage(m_re.m_hWnd, EM_AUTOURLDETECT, true, 0);

这时候,如果编译运行,你在RICHEDIT中输入如www.163.com的话,它会显示成蓝色,鼠标移到链接上,还会出现手样的鼠标指针,但点击链接的时候它什么也不做,因为我们还没有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值