Solved

Web URL hot spot on a rich text box

Posted on 2000-05-18
4
239 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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

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…
Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
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…
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…

747 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

9 Experts available now in Live!

Get 1:1 Help Now