CRichEditCtrl自动响应和检测URL

在.h中定义变量CRichEditCtrl m_pRichEdit;

在.cpp中实现自动响应和检测URL

unsigned int mask = ::SendMessage(m_pRichEdit.m_hWnd, EM_GETEVENTMASK, 0, 0);
  ::SendMessage(m_pRichEdit.m_hWnd, EM_SETEVENTMASK, 0, mask|ENM_LINK|ENM_MOUSEEVENTS|ENM_SCROLLEVENTS|ENM_KEYEVENTS);
  ::SendMessage(m_pRichEdit.m_hWnd, EM_AUTOURLDETECT, true, 0);

添加响应函数

ON_NOTIFY(EN_LINK,ID,OnURLClick)//ID表示对应m_pRichEdit;的资源ID。

 

void OnURLClick(NMHDR *pNmhdr, LRESULT *pResult)
{
 TCHAR LinkChar[512];
 ENLINK *pLink = (ENLINK *)pNmhdr;
 if (pLink->msg == WM_LBUTTONUP)
 {
  CString l_URL = _T("");
  m_pRichEdit.GetTextRange(pLink->chrg.cpMin,pLink->chrg.cpMax,l_URL);//process URL to m_pRichEdit now

  ::ShellExecute(NULL,  NULL, L"iexplore", l_URL,   NULL,   SW_SHOW);
 }
}

这样当我们点击m_pRichEdit中的URL时,就会自动调用浏览器打开该URL。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值