Solved

Web URL hot spot on a rich text box

Posted on 2000-05-18
4
242 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
  • 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 50 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Introduction While answering a recent question (http://www.experts-exchange.com/Q_27402310.html) in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…

930 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now