bonjour,
J'ai du texte dans mon RTB. Lorsque je suis en =E9xecution,=20
je voudrais pouvoir r=E9cup=E9rer le mot sur lequel=20
l'utilisateur clic. (Pour pouvoir faire un lien.)
merci
mimi
' /* Far East specific flags */ Private Const WB_MOVEWORDPREV = 4 Private Const WB_MOVEWORDNEXT = 5 Private Const WB_PREVBREAK = 6 Private Const WB_NEXTBREAK = 7
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
Private Sub RichTextBox1_SelChange() Dim WordStart As Long, WordEnd As Long WordStart = SendMessage(RichTextBox1.hwnd, EM_FINDWORDBREAK, WB_MOVEWORDLEFT, ByVal RichTextBox1.SelStart) WordEnd = SendMessage(RichTextBox1.hwnd, EM_FINDWORDBREAK, WB_RIGHTBREAK, ByVal RichTextBox1.SelStart)
WordStart = WordStart + 1 Label1.Caption = Mid$(RichTextBox1.Text, WordStart, WordEnd - WordStart + 1) End Sub
Par contre, pour le support de liens hypertexte, l'utilisation d'un webbrowser control est peut-être plus appropriée?
"mimi" a écrit dans le message de news:09ba01c3d6a1$275d23c0$
bonjour, J'ai du texte dans mon RTB. Lorsque je suis en éxecution, je voudrais pouvoir récupérer le mot sur lequel l'utilisateur clic. (Pour pouvoir faire un lien.) merci mimi
Bonjour/soir,
Tu peux utiliser le message EM_FINDWORDBREAK.
Exemple utilisant un richtextbox (richtextbox1) et un label (label1):
' /* Far East specific flags */
Private Const WB_MOVEWORDPREV = 4
Private Const WB_MOVEWORDNEXT = 5
Private Const WB_PREVBREAK = 6
Private Const WB_NEXTBREAK = 7
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
Private Sub RichTextBox1_SelChange()
Dim WordStart As Long, WordEnd As Long
WordStart = SendMessage(RichTextBox1.hwnd, EM_FINDWORDBREAK,
WB_MOVEWORDLEFT, ByVal RichTextBox1.SelStart)
WordEnd = SendMessage(RichTextBox1.hwnd, EM_FINDWORDBREAK,
WB_RIGHTBREAK, ByVal RichTextBox1.SelStart)
WordStart = WordStart + 1
Label1.Caption = Mid$(RichTextBox1.Text, WordStart, WordEnd - WordStart
+ 1)
End Sub
Par contre, pour le support de liens hypertexte, l'utilisation d'un
webbrowser control est peut-être plus appropriée?
"mimi" <anonymous@discussions.microsoft.com> a écrit dans le message de
news:09ba01c3d6a1$275d23c0$a401280a@phx.gbl
bonjour,
J'ai du texte dans mon RTB. Lorsque je suis en éxecution,
je voudrais pouvoir récupérer le mot sur lequel
l'utilisateur clic. (Pour pouvoir faire un lien.)
merci
mimi
' /* Far East specific flags */ Private Const WB_MOVEWORDPREV = 4 Private Const WB_MOVEWORDNEXT = 5 Private Const WB_PREVBREAK = 6 Private Const WB_NEXTBREAK = 7
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
Private Sub RichTextBox1_SelChange() Dim WordStart As Long, WordEnd As Long WordStart = SendMessage(RichTextBox1.hwnd, EM_FINDWORDBREAK, WB_MOVEWORDLEFT, ByVal RichTextBox1.SelStart) WordEnd = SendMessage(RichTextBox1.hwnd, EM_FINDWORDBREAK, WB_RIGHTBREAK, ByVal RichTextBox1.SelStart)
WordStart = WordStart + 1 Label1.Caption = Mid$(RichTextBox1.Text, WordStart, WordEnd - WordStart + 1) End Sub
Par contre, pour le support de liens hypertexte, l'utilisation d'un webbrowser control est peut-être plus appropriée?
"mimi" a écrit dans le message de news:09ba01c3d6a1$275d23c0$
bonjour, J'ai du texte dans mon RTB. Lorsque je suis en éxecution, je voudrais pouvoir récupérer le mot sur lequel l'utilisateur clic. (Pour pouvoir faire un lien.) merci mimi
mimi
merci pour ton aide ça marche impec!
-----Message d'origine----- Bonjour/soir,
Tu peux utiliser le message EM_FINDWORDBREAK. Exemple utilisant un richtextbox (richtextbox1) et un
' /* Far East specific flags */ Private Const WB_MOVEWORDPREV = 4 Private Const WB_MOVEWORDNEXT = 5 Private Const WB_PREVBREAK = 6 Private Const WB_NEXTBREAK = 7
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
Private Sub RichTextBox1_SelChange() Dim WordStart As Long, WordEnd As Long WordStart = SendMessage(RichTextBox1.hwnd,
' /* Far East specific flags */
Private Const WB_MOVEWORDPREV = 4
Private Const WB_MOVEWORDNEXT = 5
Private Const WB_PREVBREAK = 6
Private Const WB_NEXTBREAK = 7
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
Private Sub RichTextBox1_SelChange()
Dim WordStart As Long, WordEnd As Long
WordStart = SendMessage(RichTextBox1.hwnd,
' /* Far East specific flags */ Private Const WB_MOVEWORDPREV = 4 Private Const WB_MOVEWORDNEXT = 5 Private Const WB_PREVBREAK = 6 Private Const WB_NEXTBREAK = 7
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
Private Sub RichTextBox1_SelChange() Dim WordStart As Long, WordEnd As Long WordStart = SendMessage(RichTextBox1.hwnd,