CRichEditCtrl检测到一个URL,当点击该URL时,如何调用浏览器把该URL打开?

解决方案 »

  1.   

    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)这样实现了点击URL获取事件的方法,但是却获取不到URL的内容.
    CString l_URL;
    CHARRANGE l_CharRange;
    m_pRichEdit->GetSel( l_CharRange );
    m_pRichEdit->SetSel( pLink->chrg );
    l_URL = m_pRichEdit->GetSelText();
    m_pRichEdit->SetSel( l_CharRange );
    这样l_URL只能获得URL中的第一个字符W,其它的内容没有获取到,想要获取URL的全部内容该如何获取呢?
      

  2.   

    找到解决的方法了,直接调用函数m_pRichEdit->GetTextRange(pLink->chrg.cpMin,pLink->chrg.cpMax,l_URL);便可以直接获得到点击时的URL.