如何用CHyperLink在CRichEditCtl中实现对选定的文本加入超链接 如何用CHyperLink在CRichEditCtl中实现对选定的文本加入超链接 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 m_rce.SendMessage(EM_AUTOURLDETECT, (WPARAM)true, 0);//Ö§³Ö×Ô¶¯³¬Á´½Ó m_rce.SetEventMask(ENM_LINK);//ÏìÓ¦Á´½Ó long s,e;m_rce.GetSel(s,e);m_rce.SetSel(s,e);CHARFORMAT2 cf2;ZeroMemory(&cf2, sizeof(CHARFORMAT2));//cf2.cbSize = sizeof(CHARFORMAT2);cf2.dwMask = CFM_LINK;cf2.dwEffects |= CFE_LINK;::SendMessage(m_rce.GetSafeHwnd(),EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2); m_rce.SendMessage(EM_AUTOURLDETECT, (WPARAM)true, 0); m_rce.SetEventMask(ENM_LINK);// long s,e;m_rce.GetSel(s,e);m_rce.SetSel(s,e);CHARFORMAT2 cf2;ZeroMemory(&cf2, sizeof(CHARFORMAT2));//cf2.cbSize = sizeof(CHARFORMAT2);cf2.dwMask = CFM_LINK;cf2.dwEffects |= CFE_LINK;::SendMessage(m_rce.GetSafeHwnd(),EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2); m_rce.SendMessage(EM_AUTOURLDETECT, (WPARAM)true, 0);m_rce.SetEventMask(ENM_LINK);//long s,e;m_rce.GetSel(s,e);m_rce.SetSel(s,e);CHARFORMAT2 cf2;ZeroMemory(&cf2, sizeof(CHARFORMAT2));//cf2.cbSize = sizeof(CHARFORMAT2);cf2.dwMask = CFM_LINK;cf2.dwEffects |= CFE_LINK;::SendMessage(m_rce.GetSafeHwnd(),EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2); covsno()你好: 能不能把你的CHyperLink的源码和设置超链接的这部分的代码完整的给我,我想研究研究,因为我的CHyperLink是我从网上下的,好像与你的不一样 肯定给你加分 谢谢!! 我不知道你说的 CHyperLink 是什么CRichEditCtl就是这样设置超链接的响应的话,CMyRichEdit 继承CRichEditCtrl.hafx_msg void OnClickURL(NMHDR *pNmhdr, LRESULT *pResult);.cppON_NOTIFY_REFLECT(EN_LINK,OnClickURL)void CMyRichEdit::OnClickURL(NMHDR *pNmhdr, LRESULT *pResult){ TCHAR tcLink[2048]; ENLINK *pLink = (ENLINK *)pNmhdr; if (penLink->msg == WM_LBUTTONUP) { SetSel(pLink->chrg);// long Res = GetSelText((char *)tcLink);// //openURL(tcLink);//在这里处理ShellExecute(NULL, "open", tcLink, NULL, NULL, SW_SHOWNORMAL);}} 这是.h文件和.cpp文件http://www.iscoding.com/ShowThread.aspx?PostID=212我的这个视图是基于CRichView的能不能把你的示例工程文件的代码给我,谢谢!![email protected] covsno()你好: 谢谢你给我发的代码!! 我已经实现了,谢谢!! 但是,这种设置超链接的方法只能就是要链接的网址或本地盘符,若是汉字的话就不行了, 我想实现像Word那样选定任何文本后点击插入超级链接弹出一对话框,然后在对话框中设置 要链接的位置,这样会更方便些, 有什么好的方法吗,请指点指点, 谢谢!!! VC如何调用另一个对话框中的函数 VC slider滑块问题 谁会使用html help workshop这个软件 *******请问怎样获取一张BMP位图含有多少个祯序列?????******* 菜鸟问题Windows应用程序的执行过程是怎么样的过程 一个简单的问题? MSMQ初学者问题 高分求购例子程序(动态改变控件大小),在线等 极其简单,使用atof()的问题? 我的VC++ 程序总是出错误 关于菜单变灰的设置问题 虚拟通道技术,急!!!
m_rce.SetEventMask(ENM_LINK);//ÏìÓ¦Á´½Ó
long s,e;
m_rce.GetSel(s,e);
m_rce.SetSel(s,e);
CHARFORMAT2 cf2;ZeroMemory(&cf2, sizeof(CHARFORMAT2));//
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_LINK;
cf2.dwEffects |= CFE_LINK;
::SendMessage(m_rce.GetSafeHwnd(),EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
m_rce.SetEventMask(ENM_LINK);//
long s,e;
m_rce.GetSel(s,e);
m_rce.SetSel(s,e);
CHARFORMAT2 cf2;ZeroMemory(&cf2, sizeof(CHARFORMAT2));//
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_LINK;
cf2.dwEffects |= CFE_LINK;
::SendMessage(m_rce.GetSafeHwnd(),EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
m_rce.SetEventMask(ENM_LINK);//
long s,e;
m_rce.GetSel(s,e);
m_rce.SetSel(s,e);
CHARFORMAT2 cf2;ZeroMemory(&cf2, sizeof(CHARFORMAT2));//
cf2.cbSize = sizeof(CHARFORMAT2);
cf2.dwMask = CFM_LINK;
cf2.dwEffects |= CFE_LINK;
::SendMessage(m_rce.GetSafeHwnd(),EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&cf2);
能不能把你的CHyperLink的源码和设置超链接的这部分的代码完整的给我,我想研究研究,因为我的CHyperLink是我从网上下的,好像与你的不一样 肯定给你加分
谢谢!!
CRichEditCtl就是这样设置超链接的响应的话,CMyRichEdit 继承CRichEditCtrl.h
afx_msg void OnClickURL(NMHDR *pNmhdr, LRESULT *pResult);.cpp
ON_NOTIFY_REFLECT(EN_LINK,OnClickURL)void CMyRichEdit::OnClickURL(NMHDR *pNmhdr, LRESULT *pResult)
{
TCHAR tcLink[2048];
ENLINK *pLink = (ENLINK *)pNmhdr;
if (penLink->msg == WM_LBUTTONUP)
{
SetSel(pLink->chrg);//
long Res = GetSelText((char *)tcLink);//
//openURL(tcLink);//在这里处理
ShellExecute(NULL, "open", tcLink, NULL, NULL, SW_SHOWNORMAL);
}
}
http://www.iscoding.com/ShowThread.aspx?PostID=212
我的这个视图是基于CRichView的
能不能把你的示例工程文件的代码给我,谢谢!![email protected]
谢谢你给我发的代码!!
我已经实现了,谢谢!!
但是,这种设置超链接的方法只能就是要链接的网址或本地盘符,若是汉字的话就不行了,
我想实现像Word那样选定任何文本后点击插入超级链接弹出一对话框,然后在对话框中设置
要链接的位置,这样会更方便些,
有什么好的方法吗,请指点指点,
谢谢!!!