如何在富文本框中设定选择的字符串具有“超级链接”?

解决方案 »

  1.   

    象这样Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPrivate Sub Label1_Click()
    ShellExecute Me.hWnd, "open", "http://www.csdn.net", vbNullString, vbNullString, SW_SHOWEnd Sub
      

  2.   

    wordsgolden:别费心了,richtext根本无法实现的,换控件吧。
      

  3.   

    你需要自己处理消息
    mask = SendMessage(RichEdit1.Handle, EM_GETEVENTMASK, 0, 0)
       SendMessage(RichEdit1.Handle, EM_SETEVENTMASK, 0, mask+ENM_LINK)
       SendMessage(RichEdit1.Handle, EM_AUTOURLDETECT, true, 0)   RichEdit1.Text = "欢迎访问酒井网站 " + vbcrlf + _
                         "网址: http://166.111.136.3. "
    要响应点击的话:
    下面是一段bcb的代码,借鉴一下吧,我也不知该怎么写成vb的
    void __fastcall TMainForm::WndProc(Messages::TMessage &Message)
       {
       if (Message.Msg == WM_NOTIFY)
          {
          if (((LPNMHDR)Message.LParam)->code == EN_LINK)
             {
             ENLINK* p = (ENLINK *)Message.LParam;
             if (p->msg == WM_LBUTTONDOWN)
                {
                SendMessage(RichEdit1->Handle, EM_EXSETSEL, 0, (LPARAM)&(p->chrg));
                ShellExecute(Handle, "open", RichEdit1->SelText.c_str(), 0, 0, SW_SHOWNORMAL);
                }
             }
          }   TForm::WndProc(Message);
       }