在记事本中创建超链接(文本编辑)[MFC]
我正在用MFC构建一个文本编辑应用程序。有没有一种方法可以在用户写入网址时自动创建超链接?这就像当你写一个网址“www.google.com”时,应用程序会检测网址并立即创建一个超链接。我搜索了解释这一点的文档,但没有找到。。 但我没能做到。。 我已经制作了记事本,但我无法在记事本上添加超链接功能 以下句子是超链接的功能在记事本中创建超链接(文本编辑)[MFC],mfc,Mfc,我正在用MFC构建一个文本编辑应用程序。有没有一种方法可以在用户写入网址时自动创建超链接?这就像当你写一个网址“www.google.com”时,应用程序会检测网址并立即创建一个超链接。我搜索了解释这一点的文档,但没有找到。。 但我没能做到。。 我已经制作了记事本,但我无法在记事本上添加超链接功能 以下句子是超链接的功能 单击文本需要在文本指定的位置打开浏览器窗口 光标在控件上移动时,需要从标准箭头光标更改为指向食指 当光标移动到控件上时,控件中的文本需要加下划线 超链接控件需要以不同颜色显示文
请回答并帮助我。谢谢。只需使用一个控件(记住调用您的
InitInstance
)。呼叫完成。不幸的是,这还不足以让它工作。它会将类似URL的文本显示为蓝色下划线,但不会调用链接
这必须由附加代码来处理。这将设置所需的事件掩码:
long lMask = m_RichEditCtrl.GetEventMask();
m_RichEditCtrl.SetEventMask(lMask | ENM_LINK);
m_RichEditCtrl.SetAutoURLDetect();
此外,还必须处理反映的EN_链接以遵循链接。例如:
void CHyperLinkInEditView::OnEnLink(NMHDR *pNMHDR, LRESULT *pResult)
{
ENLINK *p_Link = reinterpret_cast<ENLINK *>(pNMHDR);
if(p_Link && p_Link->msg == WM_LBUTTONDOWN)
{
//int iRange = m_RichEditCtrl.GetTextRange(p_enLinkInfo->chrg.cpMin, p_enLinkInfo->chrg.cpMax);
m_RichEditCtrl.SetSel(p_Link->chrg);
CString szLinkString = m_RichEditCtrl.GetSelText ();
ShellExecute(m_hWnd, L"Open", szLinkString, NULL, NULL, SW_MAXIMIZE);
}
*pResult = 0;
}
void CHyperLinkInEditView::OnEnLink(NMHDR*pNMHDR,LRESULT*pResult)
{
ENLINK*p_Link=重新解释铸件(pNMHDR);
如果(p_-Link&&p_-Link->msg==WM_-LBUTTONDOWN)
{
//int iRange=m_RichEditCtrl.getextrange(p_enLinkInfo->chrg.cpMin,p_enLinkInfo->chrg.cpMax);
m_RichEditCtrl.setel(p_Link->chrg);
CString szLinkString=m_RichEditCtrl.GetSelText();
ShellExecute(m_hWnd,L“Open”,szLinkString,NULL,NULL,SW_最大化);
}
*预设值=0;
}
以上所有内容将解决要求1、2、3(部分-文本始终带下划线)和4。
我不太明白5、6和7
你能详细说明一下吗