?
Solved

Web URL hot spot on a rich text box

Posted on 2000-05-18
4
Medium Priority
?
256 Views
Last Modified: 2010-05-02
I have a rich text box which holds some text, including a URL (e.g. "www.yahoo.com"). Is it possible to make the mouse pointer change to a hand when the mouse is moved over this URL, and then control what happens when the user clicks on it?
0
Comment
Question by:mi5
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
4 Comments
 

Expert Comment

by:Olli083097
ID: 2821313
This site has an example that you might find usefull!

http://www.vbexplorer.com/VB_String_Text.asp
0
 
LVL 28

Expert Comment

by:AzraSound
ID: 2821838
i wrote code for someone to do this but it assumed the url to begin with "http".  however it did function just like a hyperlink. heres a function to tell you what word you are over in a richtextbox, just check if the left three letters are "www" in your case:


'SEE WHAT WORD YOU ARE OVER IN RICHTEXTBOX CONTROL
'ADD A RICHTEXTBOX CONTROL AND A LABEL TO THE FORM
'************************************************************************
'
'FORM CODE
'
'************************************************************************

Private Const EM_CHARFROMPOS& = &HD7
Private Type POINTAPI
    X As Long
    Y As Long
End Type

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

' Return the word the mouse is over.
Public Function RichWordOver(rch As RichTextBox, X As Single, Y As Single) As String
    Dim pt As POINTAPI
    Dim pos As Integer
    Dim start_pos As Integer
    Dim end_pos As Integer
    Dim ch As String
    Dim txt As String
    Dim txtlen As Integer
    On Error Resume Next

    ' Convert the position to pixels.
    pt.X = X \ Screen.TwipsPerPixelX
    pt.Y = Y \ Screen.TwipsPerPixelY

    ' Get the character number
    pos = SendMessage(rch.hWnd, EM_CHARFROMPOS, 0&, pt)
    If pos <= 0 Then Exit Function

    ' Find the start of the word.
    txt = rch.Text
    For start_pos = pos To 1 Step -1
        ch = Mid$(rch.Text, start_pos, 1)
        ' Allow digits, letters, and underscores.
        If Not ( _
            (ch >= "0" And ch <= "9") Or _
            (ch >= "a" And ch <= "z") Or _
            (ch >= "A" And ch <= "Z") Or _
            ch = "_" _
        ) Then Exit For
    Next start_pos
    start_pos = start_pos + 1

    ' Find the end of the word.
    txtlen = Len(txt)
    For end_pos = pos To txtlen
        ch = Mid$(txt, end_pos, 1)
        ' Allow digits, letters, and underscores.
        If Not ( _
            (ch >= "0" And ch <= "9") Or _
            (ch >= "a" And ch <= "z") Or _
            (ch >= "A" And ch <= "Z") Or _
            ch = "_" _
        ) Then Exit For
    Next end_pos
    end_pos = end_pos - 1

    If start_pos <= end_pos Then _
        RichWordOver = Mid$(txt, start_pos, end_pos - start_pos + 1)
End Function

Private Sub Form_Load()
    RichTextBox1.Text = "Test this code sample to check what" & vbCrLf & _
        "word you are over inside the richtextbox control."
End Sub

Private Sub RichTextBox1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim txt As String

    txt = RichWordOver(RichTextBox1, X, Y)
    If Label1.Caption <> txt Then _
        Label1.Caption = txt
End Sub
0
 
LVL 6

Expert Comment

by:DrDelphi
ID: 2821892
There is a very good third party rich edit control called Alltext from Bennet-Tec Information systems that will allow you to do all of what you're asking. They have a demo download at :

http://www.bennet-tec.com

Good luck!!
0
 
LVL 28

Accepted Solution

by:
AzraSound earned 200 total points
ID: 2861205
submitting answer...if you still dont get it give me your email address and i'll my full app that does this
0

Featured Post

Want to be a Web Developer? Get Certified Today!

Enroll in the Certified Web Development Professional course package to learn HTML, Javascript, and PHP. Build a solid foundation to work toward your dream job!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…
Suggested Courses

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question