CRichEditCtrl的超链接识别。
用AddHyperLink函数可以自动识别http协议,只要满足下面个条件,就会自动加上链接属性。
CString strText;
if (strText.Find("http://", 0) != -1 || strText.Find("www.", 0) != -1)
void MyDlg::AddHyperLink(CString strText, int nAction)
{
//添加超链接
CHARRANGE chrg;
CWnd *pRE = GetDlgItem(IDC_GETSAY);
pRE->SendMessage(EM_EXGETSEL, 0L, (LPARAM)&chrg);
SetLink(TRUE);
//如果此时设置了EM_GETAUTOURLDETECT,并且输入文本不符合URL格式,
//以下文本的CFE_LINK属性会被自动取消,解决此问题可以在文本添加后再设置CFE_LINK属性
pRE->SendMessage(EM_REPLACESEL, (WPARAM)TRUE, (LPARAM)(LPCSTR)strText);
m_mapHL[chrg.cpMin] = nAction;
}
请问,我有一个自己创建的协议link://
如果我要实现上面所述的自动识别功能,该如何去实现?
[解决办法]